有沒有人能夠在swaggger 2.0版的Model選項卡中定義可能的'enum'值?示例在這裏:http://petstore.swagger.wordnik.com/#!/pet/addPet有一個'status'屬性的枚舉選項,但該示例使用了swagger的1.0版(根據JSON對象中定義的swagger版本)。我試圖在2.0版本中達到相同的效果,但沒有運氣,不確定文檔是否正確。如何在swagger.io中定義枚舉?
對此有何暗示?
有沒有人能夠在swaggger 2.0版的Model選項卡中定義可能的'enum'值?示例在這裏:http://petstore.swagger.wordnik.com/#!/pet/addPet有一個'status'屬性的枚舉選項,但該示例使用了swagger的1.0版(根據JSON對象中定義的swagger版本)。我試圖在2.0版本中達到相同的效果,但沒有運氣,不確定文檔是否正確。如何在swagger.io中定義枚舉?
對此有何暗示?
「枚舉」的工作方式是這樣的:
{
"in": "query",
"name": "sample",
"description": "a sample parameter with an enum value",
"type": "string",
"enum": [ "1", "2"],
"required": true
}
正如你可以看到,有一個名爲string類型的sample
查詢參數,並具有枚舉說明兩個可能的值。在這種情況下,樣本狀態參數是必需的,所以UI將不會顯示空值作爲選項。
對於最低工作樣本,試試這個:
{
"swagger": "2.0",
"info": {
"title": "title",
"description": "descriptor",
"version": "0.1"
},
"paths": {
"/sample": {
"post": {
"description": "sample",
"parameters": [
{
"in": "query",
"name": "sample",
"description": "a sample parameter with an enum value",
"type": "string",
"enum": [
"1",
"2"
],
"required": true
}
],
"responses": {
"200": {
"description": "Successful request."
}
}
}
}
}
}
在本地測試它,你可以在你的JavaScript聲明一個變量(例如spec
),並把它傳遞到SwaggerUi對象。
var spec = { ... };
window.swaggerUi = new SwaggerUi({
url: url,
spec: spec,
dom_id: "swagger-ui-container",
supportedSubmitMethods: ['get', 'post', 'put', 'delete'],
onComplete: function(swaggerApi, swaggerUi){
...
url
參數在這種情況下將被忽略。
最終,輸出結果如下:
我能夠做到這樣好了,但你可以在連接下面的每個PARAMS它創建下拉圖像看到:
我想要實現的是很好的模型/模型模式選項卡,如下圖所示,其中列出參數可用的枚舉。這是可能的最新版本招搖:
這應該工作:
{
"name": "bookingType",
"in": "path",
"type": "array",
"items": {
"enum": [
"packages", "accommodations"
]
},
"description": "lorem ipsum"
}
參考https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md#itemsObject
這實際上不是一個有效的定義。 「items」對象*有*有一個「類型」屬性是有效的。在你的例子中,'「type」:「string」'是合適的。 – Ron
這不是確切的答案,但它可能爲你工作,直到他們添加了這個功能。
只需申報財產,像這樣
"MyObject":{
"properties":{
"MyEnum":{
"type":"Value1 or Value2 or Value3"
}
}
}
你ModelSchema會顯示{}
,但該模型會顯示MyEnum(Value1 or Value2 or Value3, optional)
與YAML語法更新這樣的:
in: query
name: sample
description: a sample parameter with an enum value
type: string
enum:
- 1
- 2
required: true
嗨webron。感謝您的建議。仍然沒有喜悅...無論我嘗試什麼,我仍然無法得到所有可能的字符串的良好輸出,如在問題中提到的示例中的addPet的'狀態'。 由於我遵循相同的JSON架構,按照此演示json - http://petstore.swagger.wordnik.com/v2/swagger。json - 你能告訴我應該如何修改寵物定義以獲得與在線演示相同的結果? – eloleon
要使用哪個版本的UI?當我測試它時,它工作正常。 – Ron
我正在使用版本2.0.47並嘗試在此示例中修改json:https://github.com/swagger-api/swagger-ui/tree/master/dist。如果你可以修改這個json:http://petstore.swagger.wordnik.com/v2/swagger.json並把它放在網上的某個地方,我會感激它 – eloleon