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

使用openapi-generator生成Symfony bundle后访问路由遇404错误

OpenAPI Generator生成的Symfony Bundle路由可见但访问返回404

本人对openapi-generator和Symfony了解有限,这应该是个基础问题,但我已经花了好几个晚上尝试调试、查阅文档都没解决,特此提问。

问题概述

用openapi-generator创建了一个Symfony Bundle,严格按照生成的README步骤操作。运行./bin/console debug:router能正常看到预期的路由,但访问该路由时却返回404页面,抛出NotFoundHttpException和ResourceNotFoundException异常,不清楚哪里配置漏了。

操作细节

1. OpenAPI配置文件

使用了一个简单的openapi.yaml:

openapi: 3.0.1
info:
  title: test
  version: 0.0.1
paths:
  /my-route:
    get:
      summary: placeholder
      responses:
        "200":
          description: OK

2. 生成Symfony Bundle

执行以下命令构建Bundle:

java -jar openapi-generator-cli-6.3.0.jar generate --git-user-id my_name --git-repo-id my_project -i openapi.yaml -g php-symfony -o php-symfony

3. 创建Symfony应用

在单独目录按照官方文档创建Symfony应用:

composer create-project symfony/skeleton:"6.2.*" my_symfony_app
cd my_symfony_app/
composer require webapp

4. 集成Bundle到Symfony应用

严格遵循Bundle生成的README步骤操作:

  • 在my_symfony_app/composer.json中添加本地仓库配置:
    "repositories": [{
        "type": "path",
        "url": "/path/to/php-symfony"
    }],
    
  • 执行composer require my_name/my_project:dev-main,询问是否执行recipe时选择y
  • 在my_symfony_app/config/routes.yaml中添加路由配置:
    open_api_server:
        resource: "@OpenAPIServerBundle/Resources/config/routing.yaml"
    
  • my_symfony_app/config/bundles.php已自动包含OpenAPI\Server\OpenAPIServerBundle::class => ['all' => true],,无需修改
  • 按照README要求创建DefaultApiInterface实现类,并注册到my_symfony_app/config/services.yaml

当前现象

部署到PHP服务器后,访问http://localhost/my_symfony_app/public/index.php/my-route返回404,堆栈信息片段:

in vendor/symfony/http-kernel/EventListener/RouterListener.php (line 127)
in vendor/symfony/event-dispatcher/Debug/WrappedListener.php -> onKernelRequest (line 115)
... 省略部分内容 ...
in vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php -> handle (line 35)
in vendor/autoload_runtime.php -> run (line 29) 

但运行./bin/console debug:router能清晰看到路由存在:

open_api_server_default_myrouteget   GET      ANY      ANY    /my-route

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 10:05:26