整个响应的声明在swagger-php中可以重复使用吗? [英] Are declarations of entire responses reusable in swagger-php?

查看:0
本文介绍了整个响应的声明在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆