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

API Platform配置Server后路由404异常求助

问题原因及解决方案

问题出在你配置的OpenAPI Server URL包含了额外的路径前缀(比如/php-api),但Symfony应用本身没有配置对应的路由基础路径,导致请求的实际路径和Symfony注册的路由不匹配。

从错误信息能看到,请求的URL是http://localhost/php-api/v1/examples/public,但你的路由是/v1/examples/public——Symfony会用请求的**路径部分(去掉域名后的完整路径)**去匹配路由,也就是/php-api/v1/examples/public,而你注册的路由是/v1/examples/public,自然匹配不上,返回404。

解决办法

方法1:给Symfony配置路由基础路径

如果你的API确实需要/php-api作为前缀,在config/packages/routing.yaml里添加基础路径配置:

framework:
    router:
        base_path: '/php-api'

这样Symfony会自动去掉请求路径里的/php-api前缀,再去匹配你注册的/v1/examples/public路由,就能正常命中。

方法2:调整OpenAPI Server的URL配置

如果不需要/php-api这个前缀,检查你的环境变量值:

  • 确保API_ROUTE是空字符串,或者$envServerPath . $envValue组合后是你的应用根地址(比如http://localhost),这样OpenAPI文档里的请求会直接用http://localhost/v1/examples/public,和Symfony的路由匹配。

也可以优化代码里的路径拼接逻辑,避免出现多余的斜杠:

$servers = [
    new Server(rtrim($envServerPath, '/') . '/' . ltrim($envValue, '/'))
];

验证

修改后执行php bin/console debug:router确认路由依然存在,然后重新访问API文档发起请求,应该能正常命中路由。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 04:35:20