2015-12-15 73 views
2

我們將非常感謝您的幫助。在Swagger中支持複雜對象

我正在使用json和swagger版本2.0.39。 如果我休息服務的需求像下面

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

AddressList中的一個動態複合數組可以包含一個或多個(動態)地址

我怎麼能寫我昂首闊步文件,以支持這種結構。如果我使用Swagger UI,它將如何填充。 我認爲應該有一個預定義的方式來支持這樣的事情。不是嗎? 我試過各種不同的選擇,我唯一的選擇是定製,我不相信這對我來說是一件容易的事。

我們將非常感謝您的幫助。 謝謝。

回答

2

Swagger支持此功能。你需要在你的模型類似這樣的定義AddressList中字段:

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

#/definitions/dynamic_addresses引用描述AddressList中排列在動態地址模型的模型。

查看Swagger Docs以瞭解有關Swagger模型規範和嵌套定義的更多信息。

+0

是啊@Mike多數民衆贊成在我的想法。如何在swagger UI中填充它。特別是當它的動態。如何以swagger UI形式動態地插入地址。還有麥克,我該如何將這個模型映射到我的json結構。 (你是否也可以添加這部分的swagger文件)很多感謝您的幫助 – nilan59

+1

Swagger UI將只顯示對包含這些對象的數組的引用。不管它是動態的,用戶界面都不會顯示數組中的對象數量或類似的數量,因爲它只有在發出請求時纔會知道。只是希望它顯示對一組動態地址對象的引用。此外,這個答案中的模型並不意味着你的代碼中的一個模型。模型指的是一個Swagger模型。您需要在Swagger JSON中有一個名爲'definitions'的對象,其中包含每個對象(又名:models)的文檔。 – Mike

+0

我直接回應了你在谷歌集團的問題 - 請記下你使用漂亮舊版swagger-ui的事實。如果可能,請升級到2.1.x。 – fehguy