symfony2:如何防止FOSRestBundle将_api添加到路由名称和/ api到URL?

时间:2014-07-06 22:57:38

标签: symfony routing fosrestbundle

我有一个EventApiController类,如下所示

Class EventApiController
{
    public function getAction($event_id)
    {
      // ...
    }
    public function putAction($event_id)
    {
      // ...
    }
}

使用Symfony之友捆绑的路由生成我希望路线看起来像

CalendarBundle_get_events   [GET]  /api/v1/events/{event_id}.{_format}                                                                                       
CalendarBundle_put_events   [PUT] /api/v1/events/{event_id}.{_format} 

然而,看起来路由生成器会自动为所有路由添加post fix / api,因此路径看起来像。并且文档也没有将此显示为预期的行为。

CalendarBundle_get_events_api   [GET]  /api/v1/events/{event_id}/api.{_format}                                                                                       
CalendarBundle_put_events_api   [PUT] /api/v1/events/{event_id}/api.{_format} 

有谁知道如何从生成的链接中删除/ api post修复?我正在使用FOS / ResutBundle版本1.3.1

我的fos_rest

的config.yml
fos_rest:
  routing_loader:
    default_format: json
    include_format: true
  view:
     view_response_listener: true

在我的Bundle

中,routing.yml看起来像这样
event_api:
   type:     rest
   resource: "@CalendarBundle/Controller/EventsApiController.php"
   prefix:   /api/v1
   name_prefix: CalendarBundle_

1 个答案:

答案 0 :(得分:1)

Api中的EventApiController FOSRestBundle 检测为路由资源。

您可以覆盖这样的资源名称,以阻止_api路由名称和/api网址:

use FOS\RestBundle\Routing\ClassResourceInterface;

/**
 * @RouteResource("Event")
 */
Class EventApiController implements ClassResourceInterface
{