You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Symfony5环境下Swagger UI无法从指定路径加载问题求助

问题排查解决步骤
  • 路径校验(最常见原因)
    你当前的api.php位于public/resources/documentation/api/目录下,原有路径配置存在两处错误:
    1. 自动加载文件路径错误:require("vendor/autoload.php")默认会从api.php所在目录下寻找vendor目录,而实际vendor位于项目根目录,需要修改为:
    require(__DIR__ . '/../../../../vendor/autoload.php');
    
    1. 注解扫描路径错误:原有__DIR__ . '/../../src/Controller/Api'实际指向的是public/resources/src/Controller/Api,并非项目根目录下的src目录,修改为:
    $openapi = \OpenApi\Generator::scan([__DIR__ . '/../../../../src/Controller/Api']);
    
  • 直接校验接口返回内容
    直接在浏览器访问你配置的api.php完整地址,查看返回结果:
    • 如果返回PHP报错信息,按照报错内容修正对应问题即可
    • 如果返回404页面,说明你的Web服务器配置将所有请求转发到了Symfony的前端控制器public/index.php,需要调整Nginx/Apache配置,允许已存在的PHP文件直接执行
    • 如果返回合法的JSON格式内容,再进行下一步排查
  • 注解兼容性适配
    如果你使用的是zircote/swagger-php 4.x及以上版本,默认优先读取PHP原生属性注解#[OA\...],如果你使用的是传统注释式注解/** @OA\... */,需要在扫描时添加解析配置:
    $openapi = \OpenApi\Generator::scan(
        [__DIR__ . '/../../../../src/Controller/Api'],
        ['parser' => new \OpenApi\Parser\StaticParser()]
    );
    
  • 注解语法校验
    确认所有Controller的注解语法符合规范,没有遗漏必填属性、拼写错误等问题,任何注解语法错误都会导致Generator::scan方法抛出异常,无法生成合法的OpenAPI JSON。

内容的提问来源于stack exchange,提问作者bjhonna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 16:06:11