我正在使用 OpenAPI 3 并有两个查询参数,其中至少一个是必需的,但哪个无关紧要。
即,作为sudocode:
if parameter_1 OR parameter_2:
do stuff
else:
error
Run Code Online (Sandbox Code Playgroud)
这在 OpenAPI 3 中可能吗?就我所见,规范或 JSON Schema 规范中都没有提及它。
这种情况与互斥参数非常相似。基本上,您可以使用对象类型参数,其中parameter_1和parameter_2是对象属性;这样的对象将被序列化为?parameter_1=value1¶meter_2=value2. 可以使用minProperties或表示“至少之一”约束anyOf。
openapi: 3.0.2
...
paths:
/foo:
get:
parameters:
- in: query
name: param
required: true
schema:
type: object
properties:
parameter_1:
type: string
parameter_2:
type: string
additionalProperties: false
# Option 1
minProperties: 1
# Option 2
# anyOf:
# - required: [parameter_1]
# - required: [parameter_2]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5546 次 |
| 最近记录: |