找不到必需的@OA\PathItem()

问题描述 投票:0回答:1

我正在尝试记录我的项目的 API。

但是我在单独的文件中执行此操作

arquivo SwaggerCambio:

<?php

namespace app\Swagger;

use OpenApi\Annotations as OA;

/**
 * @OA\Info(
 *     title="API de Câmbio",
 *     version="1.0.0",
 *     description="API para obter a cotação do dólar em relação ao real."
 * )
 */

/**
 * @OA\Get(
 *     path="/api/auth/cotacao-dolar",
 *     tags={"Cotação do Dólar"},
 *     summary="Obter cotação do dólar",
 *     description="Obtém a cotação atual do dólar em relação ao real.",
 *     @OA\Response(
 *         response=200,
 *         description="Cotação do dólar obtida com sucesso",
 *         @OA\JsonContent(
 *             @OA\Property(property="cotacao_dolar_venda", type="string", description="Cotação de venda do dólar"),
 *             @OA\Property(property="valor_em_dolar", type="string", description="Valor em dólar correspondente ao valor em reais fornecido")
 *         )
 *     ),
 *     @OA\Response(
 *         response=500,
 *         description="Erro ao obter a cotação do dólar"
 *     )
 * )
 */

l5-swagger.php
文件中我已经定义了一个注释:

'annotations' => [
                    base_path('app/swagger'),
                ],`your text`

我正在等待使用此命令生成文档:

php artisan l5-swagger:generate
php laravel swagger darkaonlinel5-swagger
1个回答
0
投票

较新版本的

l5-swagger
使用
swagger-php
(> 4.8) 版本,默认情况下不再支持 PHPDoc 注释(显然是因为较新的 PHP 版本支持属性,这使得注释内的注释变得多余)。实际上,这意味着当使用默认选项安装时,
l5-swagger
无法“查看”您的文档注释注释,因此它将生成像您提到的那样的神秘错误消息。现在您有两个选择:

  1. 使用

    安装
    doctrine/annotations

    composer require doctrine/annotations

  2. 将所有文档注释转换为注释(可能需要更多工作,但更面向未来)。所以代替:

/**
 * @OA\Info(
 *     title="My First API",
 *     version="0.1"
 * )
 */

...你必须写:

#[OA\Info(title: "My First API", version: "0.1")]
© www.soinside.com 2019 - 2024. All rights reserved.