2016-04-27 16 views
6
type": "array", 
"items": { 
    "type": "string", 
    "enum": ["MALE","FEMALE","WORKER"] 
} 

又は闊歩2.0

type": "array", 
"items": { 
    "type": "string", 
}, 
"enum": ["MALE","FEMALE","WORKER"] 

にアレイの列挙を定義しますか?

これに関する仕様はありません。もちろん、目標は列挙値を表示するためにswagger-uiを取得することです。

+0

の両方が –

答えて

4

最初のケースは正しいですし、最近ではswagger-uiが列挙型の値の複数選択を生成しています。

enter image description here

3

それはあなたが列挙したいかに依存します:

をそれぞれ列挙値は、最初のケースで説明したオブジェクトタイプ

  • のうちの第2のString
  • 文字列
  • の配列でなければなりません

最初の構文の意味これは、この配列の文字列に指定できる値です。

AnArray: 
    type: array 
    items: 
    type: string 
    enum: 
     - MALE 
     - FEMALE 
     - WORKER 

この配列には複数のStringを含めることができますが、各StringにはMALE、FEMALEまたはWORKER値が必要です。

Rendering in Swagger UI: You have to put mouse pointer on the value to see enum

もう一つは、これらがそれぞれ列挙値は、従って、配列され、このアレイ

AnotherArray: 
    type: array 
    items: 
    type: string 
    enum: 
    - 
     - FEMALE 
     - WORKER 
    - 
     - MALE 
     - WORKER 

の可能な値である意味します。この例では、この配列は可能な値["FEMALE"、 "WORKER"]と["MALE"、 "WORKER"]のみを持つことができます。

この構文が有効であっても、Swagger UIに列挙値は表示されません。

+0

最初は私が欲しいものであるが、残念ながら唯一の第二は、列挙型の値を示しhttp://bigstickcarpet.com/swagger-parser/www/index.htmlに検証します。 (これはリクエストパラメータの定義です)。そして2番目のケースでは、配列の配列ではなくフラットな構造を持っています。 –

+0

2番目の例は、配列の配列ではなく、最初の例のような文字列の配列です。違いは列挙型(配列対アイテムの項目)を置くレベルです。私はあなたが探しているものを理解していない、この配列のいくつかのJSONの例を与えることができますか? –

関連する問題