我似乎无法找到是否可以声明一个头对象以便在响应头中重用它,有一些示例为响应模式定义对象,但它没有转置到响应头。我只是设法制作了一个可重复使用的响应对象:
responses:
DownloadOk:
description: Dowload Ok
headers:
Content-Length:
description: response length
type: integer
Document-Length:
description: document length
type: integer
但正如我所说,我只想保留标题部分。
我想在这里使用它:
responses:
200:
description: Dowload Ok
headers:
$ref: '#/definitions/DowloadOk'
答案 0 :(得分:5)
根据Swagger / OpenAPI规范,您无法做到。 Definitions必须包含Schema Objects,并且这些属性不允许任意属性,而是JSON模式的特定子集(请参阅the link)。
您可以定义Response Object并引用它,因为Swagger Object具有全局responses
属性。标题没有这样的东西。反正不是在这个时候。要求这样的功能可能是值得的。
答案 1 :(得分:2)
我遇到了同样的问题。在他们宣布的文件中;
请注意,目前,OpenAPI规范不允许为不同的响应代码或不同的API操作定义公共响应头。您需要单独定义每个响应的标头。
请参阅Describing Responses上的响应标题部分。