OpenAPI 3.0如何绑定布尔查询参数到指定示例实现Swagger动态Mock
解决方案
SwaggerHub(你使用的swagger.com在线平台)的Mock服务完全支持按请求参数自动匹配返回对应的响应示例,你只需要在现有OpenAPI schema的基础上补充少量扩展配置即可实现需求。
具体修改方法
给/vans接口200响应下定义的两个示例,增加SwaggerHub可识别的参数匹配规则扩展字段x-mock-parameters即可,核心修改部分如下:
paths: /vans: get: # 其他原有配置保持不变 responses: "200": description: "Ok" content: application/json: schema: $ref: "#/components/schemas/Vans" examples: buffer_only_vans: $ref: "#/components/examples/default_vans" # 匹配all_system_vans为false或未传值(null)的请求 x-mock-parameters: all_system_vans: [false, null] all_system_vans: $ref: "#/components/examples/all_system_vans-is-true" # 匹配all_system_vans为true的请求 x-mock-parameters: all_system_vans: true # 400、404响应配置保持不变
生效后匹配规则
修改配置保存后,Mock服务会自动按以下规则返回内容:
- 请求未携带
all_system_vans参数,或参数值为false时,返回default_vans对应的示例 - 请求携带
all_system_vans=true时,返回all_system_vans-is-true对应的示例
内容的提问来源于stack exchange,提问作者crowgers
相关产品推荐
相关产品推荐

