2014-12-22 57 views

回答

57

「枚舉」的工作方式是這樣的:

 { 
     "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參數在這種情況下將被忽略。

最終,輸出結果如下:

enter image description here

我能夠做到這樣好了,但你可以在連接下面的每個PARAMS它創建下拉圖像看到: enter image description here

我想要實現的是很好的模型/模型模式選項卡,如下圖所示,其中列出參數可用的枚舉。這是可能的最新版本招搖:

enter image description here

+0

嗨webron。感謝您的建議。仍然沒有喜悅...無論我嘗試什麼,我仍然無法得到所有可能的字符串的良好輸出,如在問題中提到的示例中的addPet的'狀態'。 由於我遵循相同的JSON架構,按照此演示json - http://petstore.swagger.wordnik.com/v2/swagger。json - 你能告訴我應該如何修改寵物定義以獲得與在線演示相同的結果? – eloleon

+0

要使用哪個版本的UI?當我測試它時,它工作正常。 – Ron

+0

我正在使用版本2.0.47並嘗試在此示例中修改json:https://github.com/swagger-api/swagger-ui/tree/master/dist。如果你可以修改這個json:http://petstore.swagger.wordnik.com/v2/swagger.json並把它放在網上的某個地方,我會感激它 – eloleon

0

這不是確切的答案,但它可能爲你工作,直到他們添加了這個功能。

只需申報財產,像這樣

"MyObject":{ 
    "properties":{ 
     "MyEnum":{ 
     "type":"Value1 or Value2 or Value3" 
     } 
    } 
} 

你ModelSchema會顯示{},但該模型會顯示MyEnum(Value1 or Value2 or Value3, optional)

12

與YAML語法更新這樣的:

in: query 
name: sample 
description: a sample parameter with an enum value 
type: string 
enum: 
    - 1 
    - 2 
required: true