l5-swagger/swagger-php 在 @OA\Info 块中支持 OpenAPI (3.0.1) 中的 x-logo(针对 Laravel 8)

l5-swagger/swagger-php support for x-logo within the OpenAPI (3.0.1) in the @OA\Info block (for Laravel 8)

我正在使用 l5-swagger 和 redocly 显示 API 项目的 Laravel 8 文档。

打开API支持:

"x-logo": {
        "url": "path_to_your_logo"
    },

我试过:

@OA\X_Logo
@OA\XLogo
@OA\Logo

但是我在 l5-swagger 中找不到任何关于如何在控制器的评论中标记徽标以便在 运行

时生成上面的徽标标记的任何提及
php artisan l5-swagger:generate

我也找不到任何人问这个看起来很奇怪的问题,因为这肯定是一个常见的问题?

所以我倾向于 swagger 目前不支持它-php

Searching here for Info/Logo returns no mention of Logo 又来了 searching here for Info/Logo returns no mention of Logo

这就成了一个如何实现的问题 - 引入对它的支持肯定会很困难。

所以我尝试了 this pull-request on swagger-php 这样我就可以得到对 l5-swagger 的支持。

如有任何帮助,我们将不胜感激,如果之前有人问过,我深表歉意!但希望我们能得到答复,然后这将是 question/answer 值得拥有的。

编辑/更新

谢谢@bob-fanger 的正确答案。

原来 x-logo 不是 OpenAPI 规范的一部分,所以这可能不在 this library 的范围内。但这并不重要,因为 Bob 已经解释过 l5-swagger 确实支持它。

我会尝试将徽标示例添加到他们的文档中,以便以后的每个人都能更轻松地找到它。

x- 属性在 swagger-php 中受支持,这些属性不是 openapi 规范的一部分,被称为供应商扩展。

https://zircote.github.io/swagger-php/Getting-started.html#vendor-extensions

/**
 * @OA\Info(
 *   title="Example",
 *   version="1.0.0",
 *   x={
 *     "logo": {
 *       "url": "path_to_your_logo"
 *     }
 *   }
 * )
 */

将生成:

openapi: 3.0.0
info:
  title: Example
  version: 1.0.0
  x-logo:
    url: path_to_your_logo