我正在使用Swagger Codegen启动REST服务。我需要对不同的参数有不同的响应。
示例:<baseURL>/path
可以使用?filter1=
或?filter2=
,这些参数应生成不同的响应消息。
我希望我的OpenAPI YAML文件分别记录这两个查询参数。这可能吗?
答案 0 :(得分:3)
2.0规范不支持,也不支持3.0。
以下是OpenAPI规范存储库中的相应提议:
Accommodate legacy APIs by allowing query parameters in the path
Querystring in Path Specification
答案 1 :(得分:1)
如果您仍在寻找,我找到了解决此问题的方法。这有点hack,但是可以用。
基本上,通过在URL中添加斜杠(/),可以对同一路径具有两个定义。
这样,您可以使用<baseURL>/path
参数为?filter1=
设置响应,并使用<baseURL>//path
参数为?filter2=
设置另一个响应。为每个定义提供唯一的operationId
也很重要。
paths:
/path/you/want:
get:
summary: Test
operationId: get1
parameters:
- name: filter1
type: string
in: path
required: true
responses:
200:
description: Successful response
schema:
$ref: '#/definitions/SomeResponse'
/path/you//want:
get:
summary: Another test
operationId: get2
parameters:
- name: filter2
type: string
in: path
required: true
responses:
200:
description: Successful response
schema:
$ref: '#/definitions/SomeOtherResponse'
我用path参数尝试了一下,效果很好!
答案 2 :(得分:0)
这有效!!!只需在URL之间添加“ /”。 之前: 路径 / my / path
之后: 路径 /我自己的路 帖子:
效果很好。