整个响应的声明在swagger-php中可以重复使用吗? [英] Are declarations of entire responses reusable in swagger-php?
本文介绍了整个响应的声明在swagger-php中可以重复使用吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我希望有一种方法来声明对每个终结点都相同的一些响应;例如,如果您没有正确的令牌,每个终结点将输出401
,如果您的路径开头没有有效的id
,则可能有另一组终结点都将输出id
。
因此,对于几乎每种方法,我发现自己复制粘贴的内容如下:
* @OAResponse(response=401, description="If no token..."),
* @OAResponse(response=404, description="If ID of thing invalid..."),
getting started section表示支持可重复使用的响应,但仅涵盖(成功响应的)属性。
没有我要找的东西的示例,我也猜不出任何可以编译的东西。
类似@OAResponse(ref="#/components/schemas/Unauthorized")
的内容看起来应该是这样的(编译不会抱怨ref
属性的存在),但是我该如何声明Unauthorized
模式呢?因为声明@OAResponse
表示它只需要以下字段:"ref", "response", "description", "headers", "content", "links", "x"
,而这些字段都不能用作标识符。
我将此与L5-swagger结合使用以获得Laravel支持。
推荐答案
在操作外部声明响应:
/**
* @OAResponse(response="Unauthorized", description="If no token...")
*/
这将使用response=
AS值作为键将其添加到#/components/responses/
。
然后您可以在以后的操作中重新使用它:
/**
* @OAGet(
* path="/example",
* @OAResponse(response=401, ref="#/components/responses/Unauthorized")
* )
*/
这篇关于整个响应的声明在swagger-php中可以重复使用吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文