如何在Swagger YAML中处理重复出现的请求参数?
OpenAPI 复用公共请求参数的方法
当然可以实现公共请求参数的集中定义,不用在每个API里重复编写,核心是利用OpenAPI规范中的components/parameters和引用机制:
1. 集中定义公共参数
在OpenAPI文档的components节点下统一声明所有重复的请求参数:
components: parameters: AuthHeader: name: auth in: header description: an authorization header required: true schema: type: string IdHeader: name: id in: header description: an special id required: true schema: type: string
2. 在单个API中引用
如果只是部分API需要这些参数,在对应接口的parameters列表里通过$ref引用即可:
paths: /api/user/profile: get: parameters: - $ref: '#/components/parameters/AuthHeader' - $ref: '#/components/parameters/IdHeader' responses: '200': description: 获取用户信息成功
3. 全局批量应用到所有API
如果这些参数是所有API都必需的,可以直接在paths根节点下定义parameters,这样所有接口会自动继承这些参数,无需逐个引用:
paths: # 全局参数,所有接口都会自动包含这两个请求头 parameters: - $ref: '#/components/parameters/AuthHeader' - $ref: '#/components/parameters/IdHeader' /api/user/profile: get: responses: '200': description: 获取用户信息成功 /api/order/list: post: responses: '200': description: 获取订单列表成功
内容的提问来源于stack exchange,提问作者Mehul Chaturvedi
相关产品推荐
相关产品推荐

