Swagger 如何定义具有固定和每端点组件的全局响应结构?
使用OpenAPI 3.*,是否有一种方法可以定义一个包含固定(由所有端点返回)和每个端点(变化)组件的全局响应结构?例如:Swagger 如何定义具有固定和每端点组件的全局响应结构?,swagger,openapi,Swagger,Openapi,使用OpenAPI 3.*,是否有一种方法可以定义一个包含固定(由所有端点返回)和每个端点(变化)组件的全局响应结构?例如: 获取/user: { “请求”: {“运行时”:11, “状态”:“确定”}, “用户”:{“名称”:“用户名”} } 与获取数据相比: { “请求”: {“运行时”:42, “状态”:“确定”}, “数据”:{“列表”:[1,2,3]} } 也就是说,所有端点都会返回\uuuuuuuuuuuuuuuuuuuuuuuuuuuuu请求对象,而响应中的其他对象会因端点而异
获取
/user:
{
“请求”:
{“运行时”:11,
“状态”:“确定”},
“用户”:{“名称”:“用户名”}
}
与获取数据相比:
{
“请求”:
{“运行时”:42,
“状态”:“确定”},
“数据”:{“列表”:[1,2,3]}
}
也就是说,所有端点都会返回\uuuuuuuuuuuuuuuuuuuuuuuuuuuuu请求
对象,而响应中的其他对象会因端点而异
起点是定义RequestBlock:
components
schemas:
RequestBlock:
properties:
__request__:
description: "API request details and service time"
properties:
status:
type: string
description: request status
example: "OK"
runtime:
type: integer
description: API request service time
example: 42
allOf
可用于组合固定和每端点响应组件:
paths:
/user:
get:
summary: user details
responses:
200:
content:
application/json:
schema:
allOf:
- $ref: "#/components/schemas/RequestBlock"
- $ref: "#/components/schemas/User"
但是,allOf
块必须包含在每个端点和每个状态代码响应类型(200、401、404..)上。是否有一种更优雅的,全局方法来定义上述响应结构