3

问题

当我们在 中定义routing.yml

my_controllers:
    resource: "@MyBundle/Controller/"
    type:     annotation
    prefix:   /

和:

my_api:
    resource:    'MyBundle\Controller\ApiController'
    type:        rest
    prefix:      /api
    name_prefix: my_api_
    options:
        expose: true

我们得到重复的路线NelmioApiDoc

在此处输入图像描述

问题

我们应该如何做到这一点,这样路由ApiController就不会被重复?

  • ApiController从“通配符”资源导入中排除?
  • 单独导入所有其他控制器?
  • 其他解决方案?
4

1 回答 1

5

你会在 Nelmio ApiDoc 中获得重复的条目,因为 Symfony 中实际上存在重复的路由。执行这个命令来查看 Symfony 中的每条路由,包括你的 API 的路由(会出现/api前缀和不带前缀的):

php app/console router:debug

正如 Yann 所建议的,我认为最好的方法是为您的 API 控制器(类似于@MyBundle/ControllerRest/)创建一个单独的目录并将它们放置在那里。然后,不要忘记更新my_api您的部分下的资源路由routing.yml和 API 控制器中的命名空间。

这样您就可以摆脱重复的路由,因此 ApiDoc 每次调用只会显示一条路由,而不是两条。

于 2015-08-11T10:44:23.260 回答