2015-12-15 4 views
2

Ваша помощь в этом будет высоко оценена.Поддержка сложных объектов в Swagger

Я использую json и swagger версии 2.0.39. Если моя служба остальные требует динамического комплекс массив как следующего

eg:- 
addressList:[ 
{ 
lane:abc 
city:colombo 
}, 
{ 
lane:def 
city:colarado 
} 
] 

Addresslist может содержать один или несколько (динамические) обращается

Как я могу написать мой файл чванство, чтобы поддержать эту структуру. Как он будет заселен, если я использую пользовательский интерфейс swagger. Я думаю, что должен существовать предопределенный способ размахивать поддержкой чего-то подобного. Не так ли? Я пробовал различные альтернативы и только вариант У меня есть настройка, которую я не считаю, будет легкой задачей для меня.

Ваша помощь будет высоко оценена. Спасибо.

ответ

2

Swagger поддерживает эту функциональность. Вам нужно будет определить поле Addresslist в вашей модели, подобной этой:

"addressList":{ 
    "type":"array", 
    "items":{ 
     "$ref": "#/definitions/dynamic_addresses", 
    } 
} 

#/definitions/dynamic_addresses Где ссылается на модель, которая описывает вашу динамическую модель адреса в массиве Addresslist.

Посмотрите на Swagger Docs, чтобы больше узнать о спецификациях модели Swagger и вложенных определениях.

+0

Да @Mike это то, о чем я думал. Как он будет заполнен пользовательским интерфейсом swagger. Специально, когда его динамика. Как динамически вставлять адреса в пользовательский интерфейс swagger. А также майк, как я могу сопоставить эту модель с моей json-структурой. (Можете ли вы также добавить эту часть файла swagger) Многие спасибо за помощь – nilan59

+1

Swagger UI просто покажет ссылку на массив, содержащий эти объекты. Не имеет значения, является ли он динамичным, пользовательский интерфейс не будет показывать количество объектов в массиве или что-то подобное, потому что он не знает, пока вы не сделаете запрос. Просто ожидайте, что он покажет ссылку на массив объектов динамических адресов. Кроме того, модель в этом ответе не означает одну из ваших моделей в коде. Модель относится к модели Swagger. Вам нужно будет иметь объект в вашем Swagger JSON, называемый 'определения', который включает документы для каждого из ваших объектов (aka: models). – Mike

+0

Я ответил прямо на ваш вопрос в группе google. Пожалуйста, обратите внимание на то, что вы используете довольно старую версию swagger-ui. Если возможно, обновите до 2.1.x. – fehguy