如何在API Platform中修改接口基础URL且不影响后台、文档访问
问题原因
你在api_platform.yaml中配置全局prefix: api/v1/时,该前缀会默认应用到所有API Platform接管的路由,包括业务接口、Swagger文档页面、Admin后台面板,所以原来的/docs、/admin路径会自动变为/api/v1/docs、/api/v1/admin,直接访问旧路径自然返回404。
原生解决方法(无需修改Caddy配置)
可以根据你的需求选择以下两种方案:
方案1:直接使用新路径
不需要修改任何配置,直接访问加了前缀的新地址即可:
- Swagger文档页面:
/api/v1/docs - Admin后台面板:
/api/v1/admin - OpenAPI原始文档:
/api/v1/docs.json
方案2:仅给业务API接口加前缀,保留原有文档、后台路径
把你之前添加的全局prefix: api/v1/配置删除,改为仅给业务API资源配置前缀,配置如下:
api_platform: # 移除全局prefix配置,添加资源默认路径前缀 resource: defaults: path_prefix: '/api/v1'
如果你使用的是API Platform 3及以上版本,也可以保留全局前缀,单独覆盖文档和后台的路径:
api_platform: prefix: '/api/v1' # 单独指定文档路径,不受全局前缀影响 docs: path: '/docs' # 单独指定后台路径,不受全局前缀影响 admin: path: '/admin'
以上两种方案都是API Platform原生支持的能力,不需要额外调整Caddy等反向代理配置即可生效。
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

