枚举
您可以使用 enum
关键字来指定请求参数或模型属性的可能值。例如,在
1GET /items?sort=[asc|desc]
中的 sort 参数可以描述为
1paths:2 /items:3 get:4 parameters:5 - in: query6 name: sort7 description: Sort order8 type: string9 enum: [asc, desc]
在 YAML 中,您也可以每行指定一个枚举值
1enum:2 - asc3 - desc
枚举中的所有值都必须符合指定的类型。如果您需要为枚举项指定描述,可以在参数或属性的 description
中执行此操作
1type: string2enum:3 - asc4 - desc5description: >6 Sort order:7 * asc - Ascending, from A to Z.8 * desc - Descending, from Z to A.
可重用枚举
OpenAPI 3.0 中支持可重用的枚举定义。
虽然 Swagger 2.0 没有内置的对可重用枚举的支持,但可以在 YAML 中使用 YAML 锚点定义它们 – 前提是您的工具支持它们。锚点是 YAML 的一个方便功能,您可以用 &anchor-name
标记一个键,然后在下方使用 *anchor-name
来引用该键的值。这使您可以轻松地在 YAML 文件中复制内容。
注意:必须在使用之前定义锚点(&
)。
1definitions:2 Colors:3 type: string4 enum: &COLORS5 - black6 - white7 - red8 - green9 - blue10 # OR:11 # enum: &COLORS [black, white, red, green, blue]12
13paths:14 /products:15 get:16 parameters:17 - in: query18 name: color19 required: true20 type: string21 enum: *COLORS22 responses:23 200:24 description: OK
如果您的工具的 YAML 解析器支持 YAML 合并键(<<
),则可以使用此技巧来引用类型和枚举值。
1definitions:2 Colors: &COLORS3 type: string4 enum: [black, white, red, green, blue]5paths:6 /products:7 get:8 parameters:9 - in: query10 name: color11 required: true12 <<: *COLORS13 responses:14 200:15 description: OK