列舉
您可以使用 enum
關鍵字來指定請求參數或模型屬性的可能值。例如,GET /items?sort=[asc|desc]
中的排序參數可以描述為
1paths:2 /items:3 get:4 parameters:5 - in: query6 name: sort7 description: Sort order8 schema:9 type: string10 enum: [asc, desc]
在 YAML 中,您也可以每行指定一個列舉值
1enum:2 - asc3 - desc
列舉中的所有值都必須符合指定的 type
。如果您需要為列舉項目指定描述,您可以在參數或屬性的 description
中執行此動作
1parameters:2 - in: query3 name: sort4 schema:5 type: string6 enum: [asc, desc]7 description: >8 Sort order:9 * `asc` - Ascending, from A to Z10 * `desc` - Descending, from Z to A
可為空的列舉
可為空的列舉可以定義如下
1type: string2nullable: true # <---3enum:4 - asc5 - desc6 - null # <--- without quotes, i.e. null not "null"
請注意,null
必須明確包含在 enum
值的清單中。單獨使用 nullable: true
是不夠的。
可重複使用的列舉
在 OpenAPI 3.0 中,操作參數和資料模型都使用 schema
,可以輕鬆重複使用資料類型。您可以在全域 components
區段中定義可重複使用的列舉,並透過 $ref
在其他地方參考它們。
1paths:2 /products:3 get:4 parameters:5 - in: query6 name: color7 required: true8 schema:9 $ref: "#/components/schemas/Color"10 responses:11 "200":12 description: OK13components:14 schemas:15 Color:16 type: string17 enum:18 - black19 - white20 - red21 - green22 - blue