我正在使用Swagger Codegen启动REST服务。我需要对不同的参数有不同的响应。
示例:<baseURL>/path
可以使用?filter1=
或?filter2=
,这些参数应该产生不同的响应消息。
我希望我的OpenAPI YAML文件分别记录这两个查询参数。这可能吗?
它在2.0规范中不受支持,也不在3.0中。
以下是OpenAPI规范存储库中的相应提议: Accommodate legacy APIs by allowing query parameters in the path Querystring in Path Specification
如果你还在寻找,我找到了解决这个问题的方法。这有点像黑客,但它确实有效。
基本上,通过在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'
我尝试使用路径参数,它工作得很好!
这工作!!!只需在URL之间添加“/”即可。之前:path / my / path
after:path / my // path post:
这非常有效。