Swagger 如何不在几乎所有路径中复制粘贴3个通用错误响应?

Swagger 如何不在几乎所有路径中复制粘贴3个通用错误响应?,swagger,openapi,Swagger,Openapi,我希望我的几乎所有路径都有以下3个通用错误响应。我如何在不到处复制粘贴这些行的情况下大摇大摆地描述这一点 401: 描述:请求者未经授权。 模式: $ref:“#/definitions/Error” 500: 描述:“出现问题。是服务器的故障。” 模式: $ref:“#/definitions/Error” 503: 描述:服务器不可用。也许有维修? 模式: $ref:“#/definitions/Error” 我如何在请求中使用此选项的示例: 路径: /角色: 获取: 摘要:角色 说明:|

我希望我的几乎所有路径都有以下3个通用错误响应。我如何在不到处复制粘贴这些行的情况下大摇大摆地描述这一点

401:
描述:请求者未经授权。
模式:
$ref:“#/definitions/Error”
500:
描述:“出现问题。是服务器的故障。”
模式:
$ref:“#/definitions/Error”
503:
描述:服务器不可用。也许有维修?
模式:
$ref:“#/definitions/Error”
我如何在请求中使用此选项的示例:

路径:
/角色:
获取:
摘要:角色
说明:|
返回用户可用的所有角色。
响应:
200:
描述:包含所有角色的数组。
模式:
类型:数组
项目:
$ref:“#/definitions/Role”
401:
描述:请求者未经授权。
模式:
$ref:“#/definitions/Error”
500:
描述:“出现问题。是服务器的故障。”
模式:
$ref:“#/definitions/Error”
503:
描述:服务器不可用。也许有维修?
模式:
$ref:“#/definitions/Error”

看起来我可以添加以下全局响应定义:

#用于保存可跨操作使用的响应的对象。
#此属性不定义所有操作的全局响应。
响应:
未授权:
描述:请求者未经授权。
模式:
$ref:“#/definitions/Error”
但是,我仍然需要在如下路径中引用它:

401:
$ref:“#/responses/NotAuthorized”

在OpenAPI 3.0中,除了使用
/components/responses/..
而不是
/responses/..
之外,情况与此相同:

openapi:3.0.0
#用于保存可跨操作使用的响应的对象。
#此属性不定义所有操作的全局响应。
组件:
响应:
未授权:
描述:请求者未经授权。
模式:
$ref:“#/components/schemas/Error”
#然后,在操作响应中,使用:
...
401:
$ref:“#/components/responses/NotAuthorized”

OpenAPI规范存储库中还有一个open,用于添加对操作的全局/默认响应的支持