gpt4 book ai didi

php - Symfony 4 路由注释导致 openapi 注释错误

转载 作者:行者123 更新时间:2023-12-05 01:39:06 44 4
gpt4 key购买 nike

目前我们的项目安装了 Symfony 4.3。自 2.7 以来,我们一直在成长,因此可能存在一些遗留垃圾,但总体而言,我们的应用程序运行良好。我们有一个调味系统,它为每条路线添加前缀(我不知道这是不是个好主意,但当我们开始支持它时就是这样)。所以链接看起来像这样:

test.me/{flavor}/project/{UUID}

我们正在为路由使用注释,因此有一个 annotations.yaml:

controllers:
resource: ../../src/App/Controller/
type: annotation
prefix: /{flavor}/

既然我们想介绍一个 API 文档,我们想使用这个 php 包:https://github.com/zircote/swagger-php这让我们可以像处理路由一样为我们的 API 编写注释,并生成一个可以分发到我们连接的项目的 swagger.json。问题是在编写注释时会弹出此错误:

$:bin/console cache:clear -e dev                                

// Clearing the cache for the dev environment with debug true


In FileLoader.php line 166:

[Semantical Error] The annotation "@OA\Schema" in class App\Controller\Api\Model\APIMessage
was never imported. Did you maybe forget to add a "use" statement for this annotation? in /config/routes/../../src/Catrobat/Controller/ (which is being imported from "/config/routes/annotations.yaml"). Make sure annotations are installed
and enabled.

知道如何告诉框架忽略文件加载器中的这个注解吗? swagger-php 自行解析文件,因此它并不关心是否导入了这些文件。我还尝试导入 Openapi Annotations,但这也不起作用。非常感谢对此的任何帮助!

最佳答案

这有点尴尬。我最初的想法是,拥有 annotations.yaml 会以某种方式尝试加载注释,我是对的。要解决这个错误,我只需添加:

use OpenApi\Annotations as OA;

使用注释的文件,它工作。

关于php - Symfony 4 路由注释导致 openapi 注释错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59029507/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com