HFi*_*nch 3 php symfony swagger openapi symfony4
目前我们的项目已经安装了 Symfony 4.3。从那时起我们已经成长,2.7所以可能会有一些遗留垃圾,但总的来说我们的应用程序运行良好。我们有一个为每条路线添加前缀的调味系统(我不知道这是否是一个好主意,但当我们开始支持它时就是这样)。所以链接看起来像这样:
test.me/{flavor}/project/{UUID}
Run Code Online (Sandbox Code Playgroud)
我们使用注释进行路由,因此有一个annotations.yaml:
controllers:
resource: ../../src/App/Controller/
type: annotation
prefix: /{flavor}/
Run Code Online (Sandbox Code Playgroud)
现在,由于我们想要引入 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.
Run Code Online (Sandbox Code Playgroud)
知道如何告诉框架忽略文件加载器中的此注释吗?swagger-php自己解析文件,因此它并不真正关心文件是否被导入。我还尝试导入 Openapi Annotations,但这也不起作用。非常感谢任何帮助!
这就有些尴尬了。我最初的想法是,拥有会annotations.yaml以某种方式尝试加载注释,我是正确的。为了解决这个错误,我只需添加:
use OpenApi\Annotations as OA;
Run Code Online (Sandbox Code Playgroud)
对于使用注释的文件,它可以工作。
| 归档时间: |
|
| 查看次数: |
2565 次 |
| 最近记录: |