2014-11-20 93 views
2

我想弄清楚如何使Swagger用戶界面顯示允許值的列表,而不是輸入字段。Swagger用戶界面參數列表,而不是文本輸入

到目前爲止,我能夠讓Swagger的不同版本和文檔感到困惑。我不知道哪個是哪個(1.2,2.0,YAML,JSON ...)

到目前爲止,這是我知道的:

  1. 有一些命令調用allowableValues但據我瞭解,它在Swagger 2.0中不可用
  2. 我發現了enum命令,但無法使它適用於我。
  3. 我不知道我是否應該在parameters部分定義了允許使用此值列表,或definitions部分
  4. 我發現它確實有一個選擇欄像我想要(GET/PET/findByTags)的petstore example,但就我所見到的「原始」JSON而言,它看起來像舊的Swagger格式。

最後,這裏是我試圖在this Swagger editor代碼:

swagger: '2.0' 
host: asd.com 
schemes: 
    - http 
info: 
    version: "1.0.0" 
    title: test 

paths: 
    /users: 
    get: 
     parameters: 
     - name: status 
      in: query 
      type: string 
      enum: 
      - online 
      - offline 

     responses: 
     "200": 
      description: Nice 

回答

2

揚鞭2.0已經發布了幾個月前,和它周圍的工具逐漸添加對規範本身的支持。

規範格式本身是JSON,但編輯器工具(它是2.0中的新功能)允許您使用YAML進行更人性化的編輯。

  1. 我不確定你在哪裏得到allowableValues - 這不是Swagger 1.2和2.0的一部分。
  2. enum確實是用於將字段限制爲特定值的屬性名稱。
  3. parameters用於定義操作參數(路徑,查詢,標題,正文和formData)。 definitions用於架構對象,它們通常是API使用的模型,但也可以表示數組和基元。可以在任何基元類型旁邊使用enum來限制其定義,無論是在參數定義還是架構對象定義內。
  4. 目前,Swagger 2.0寵物商店示例位於此處 - http://petstore.swagger.wordnik.com/ui。在寫這個答案的時候,那個樣本中沒有使用enum

至於查看swagger-ui中的有限值,對於Swagger 2.0,它尚未實現。如上所述,它仍在進行中。您可以直接在repository上打開關於它的問題。

根據有效性,上面粘貼的YAML看起來很好。

+0

感謝您的詳細回覆。所以我想我現在應該使用1.2規範,如果我想要一個功能齊全的工具集?我在幾個地方看到了allowableValues,並且由於我認爲我的代碼是錯誤的,所以可能會將它置於背景之外。示例:http://stackoverflow.com/questions/23936140/enum-in-swagger和 http:// stackoverflow。com/questions/14761424/using-servicestacks-swagger-plugin-how-to-implement -a-string-field-with-a-list – DannyB 2014-11-21 11:27:07

+0

在swagger-ui和swagger-editor repos上發佈的問題https:// github .com/swagger-api/swagger-ui/issues/736和https://github.com/swagger-api/swagger-editor/issues/256 – DannyB 2014-11-21 11:40:46

+1

工具一直在進步,所以你可能真的想要堅持2.0,特別是如果你手動編寫你的規格。 1.2沒有這樣的編輯器。感謝您打開這些問題。至於'allowableValues',第一個只是java實現,轉化爲'enum',第二個完全無效。 – Ron 2014-11-21 14:04:42

相關問題