Swagger-core: في نموذج ApiModel المتداخل المتداخل ، لا يظهر "مثال" ApiModelProperty الداخلي لـ ApiModel في تعريف Swagger

تم إنشاؤها على ٧ أكتوبر ٢٠١٦  ·  5تعليقات  ·  مصدر: swagger-api/swagger-core

أهلا،

لدي ApiModel يحتوي على ApiModel آخر (متداخل). في ملف تعريف swagger ، الذي تم إنشاؤه لتطبيق الويب الخاص بي ، لا يحتوي على الخاصية المشروحة ، "مثال" ، للسمات الموجودة في ApiModel المتداخل ( ApiModel الداخلي ). لكن قيم الأمثلة المشروحة للسمات الموجودة في ApiModel الخارجي موجودة في تعريف

اسمحوا لي أن أوضح هذا بمثال. (سأشرح ما قصدته بنموذج ApiModel الداخلي و ApiModel الخارجي من خلال المثال التالي)

تمت إضافة تعليق توضيحي لفئة "ListActivity" الخاصة بي باستخدام التعليق التوضيحي "ApiModel" على النحو التالي. هذا هو نموذج ApiModel الخارجي

@ApiModel(
            value = "List of activities", 
            description = "This contains a set of activities that matches a given criteria as a collection")
public class ActivityList

داخل فئة "ActivityList" لدي سمتان. هذه هي عدد صحيح -> "العد" والقائمة-> "الأنشطة". يتم شرح كلتا السمتين باستخدام التعليق التوضيحي "ApiModelProperty" على النحو التالي.

@ApiModelProperty(
            value = "Number of total resources.",
            example = "1")
 @JsonProperty("count")
 private int count;

@ApiModelProperty(
            value = "Returns the list of activities that match the offset and limit parameter values that were specified.")
@JsonProperty("activities")
private List<Activity> activities;

نظرًا لأن "النشاط" كائن ، فقد قمت بإنشاء ApiModel لفئة "النشاط". أنا أشرح ذلك على النحو التالي.

الآن هذا هو ApiModel الداخلي الموجود داخل "ActivityList" ApiModel ( الخارجي ApiModel ).
(آمل الآن أن تتمكن من فهم ما قصدته من خلال نماذج ApiModels المتداخلة).

@ApiModel(
          value = "Activity", 
         description = "An activity instance carries a unique identifier that can be used to identify a particular operation instance uniquely")
public class Activity;

داخل فئة "النشاط" ، لدي سمتان أخريان. هذه هي String -> "activityId" و String -> "code". أقوم بتعليق هذه السمات باستخدام

@ApiModelProperty(
            name = "activityId",
            value = "Activity identifier",
            required = true,
            example = "ACTIVITY_1")
@JsonProperty("activityId")
private String activityId;

@ApiModelProperty(
            name = "code",
            value = "Activity code",
            required = true,
            example = "DEVICE_RING")
@JsonProperty("code")
private String code;

بعد ذلك أقوم بإنشاء ملف تعريف التباهي. في الملف الذي تم إنشاؤه ، تم تعيين قيم الأمثلة فقط على السمة "count" التي كانت موجودة في ApiModel الخارجي . هذا يعني أن قيمة مثال السمة "count" تم تعيينها على "1" كما أشرت في المثال المذكور أعلاه.

لكن جميع قيم الأمثلة التي قمت بتعيينها في ApiModel الداخلي والتي هي سمات فئة "النشاط" ، لا تأتي إلى ملف تعريف

لذلك في واجهة المستخدم swagger ، يكون مخطط json الذي أحصل عليه كما هو موضح أدناه. يتم تعيين "count" فقط على "1" ويتم تعيين المفاتيح الأخرى مع أنواع البيانات الخاصة بها.

{
    "count": 1,
    "activities": [{
        "activityId": "string",
        "code": "string"
    }]
}

تعريف التباهي على النحو التالي.

 "List of activities": {
         "type": "object",
         "properties": {
            "count": {
               "type": "integer",
               "format": "int32",
               "example": 1, **(example values are set here as given in the annotations)** 
               "description": "Number of total resources."
            },

            "activities": {
               "type": "array",
               "description": "Returns the list of activities that match the offset and limit parameter values that were specified.",
               "items": {
                  "$ref": "#/definitions/Activity"
               }
            }
         },
         "description": "This contains a set of activities that matches a given criteria as a collection"
}


"Activity": {
         "type": "object",
         "properties": {
            "activityId": {
               "type": "string" **(example values are not set here though I set it in the annotations, even the property 'example' isn't displayed)**  
            }
         }
 }

لذلك ، في نموذج ApiModel المتداخل المتداخل ، لا يظهر "مثال" ApiModelProperty الداخلي لـ ApiModel في تعريف التباهي.

هل يمكنني تعيين خاصية المثال هذه على سمات ApiModel الداخلية عند إنشاء تعريف

شكرا لك

التعليق الأكثر فائدة

أهلا،

ما هو وضع هذه القضية؟ ليس من الواضح سبب إغلاقه. أواجه موقفًا مشابهًا لما تم وصفه أعلاه في Java عندما لا يتم إنشاء الكائنات المتداخلة ، التي تم التعليق على فئاتها باستخدام

شكرا على إعلامي

ال 5 كومينتر

يرجى إنشاء حالة اختبار لهذا في العلاقات العامة

أهلا،

ما هو وضع هذه القضية؟ ليس من الواضح سبب إغلاقه. أواجه موقفًا مشابهًا لما تم وصفه أعلاه في Java عندما لا يتم إنشاء الكائنات المتداخلة ، التي تم التعليق على فئاتها باستخدام

شكرا على إعلامي

ما هو الحل المقدم؟

لا يزال دون حل في عام 2020؟

إنها قضية مغلقة منذ عام 2016. لقد تغير الكثير منذ ذلك الحين. إذا كنت لا تزال تواجه مشكلة ، فمن الأفضل تقديم تذكرة مفصلة جديدة.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات