我对这个URLAPI:
/api/doSomething?key=value1=value2
这可以在Swagger/OpenAPI 3.0中表示吗?如果是这样,那会是什么样子?如果没有第二个value e2
,我会这样指定它:
/api/doSomething:
get:
summary: ''
parameters:
- in: path
name: key
description: ''
required: true
schema:
type: string
OpenAPI在查询字符串中支持以下数组值分隔符:, |
。OpenAPI 2.0还支持\t
。
=
不支持作为数组值的分隔符。
您最多可以将您的key
参数记录为type: string
并在描述
中解释格式。假设您使用openapi:3.0.0
:
parameters:
- in: query
name: filter
required: true
schema:
type: string
description: A list of values separated by `=`.
example: value1=value2
另请注意,=
是一个保留字符。在OpenAPI 3.0中,查询参数具有额外的允许保留
属性,该属性控制保留字符是按原样发送还是按百分比编码发送。
allowReserved: true
/api/doSomething?key=value1=value2
^
allowReserved: false
/api/doSomething?key=value1%3Dvalue2
^
参数对象可能包含一个允许保留
选项,该选项允许在参数值中使用保留字符,例如=
。以下内容适合您吗?
/api/doSomething:
get:
summary: ''
parameters:
- in: path
name: key
description: ''
required: true
allowReserved: true
schema:
type: string