我正在为我的Web应用程序使用Symfony框架(3.3)和捆绑软件FOSRestBundle .

我有一个名为 FooBarsController 的控制器,我想使用“Automatic route generation: single RESTful controller” .

问题是,正如您所看到的,控制器是多字复合的 .

我是否必须注释我的控制器类和方法以映射URL,如“/ foo-bars”:

use FOS\RestBundle\Controller\Annotations\Delete;
use FOS\RestBundle\Controller\Annotations\Get;
use FOS\RestBundle\Controller\Annotations\Post;
use FOS\RestBundle\Controller\Annotations\Put;
use FOS\RestBundle\Controller\Annotations\Route;
use FOS\RestBundle\Controller\FOSRestController;

/** 
 * @Route("/foo-bars", defaults={"_format": "json"})
 */
class FooBarsController extends FOSRestController
{
    /** 
     * @Get()
     * @View(templateVar="fooBars")
     */
    protected $getFooBarsAction();

    /** 
     * @Get("/{id}", requirements={"id": "\d+"})
     * @View(templateVar="fooBar")
     */
    protected $getFooBarAction($id);

    /** 
     * @Post()
     * @View(templateVar="fooBar")
     */
    protected $postFooBarsAction();

    /** 
     * @Put("/{id}", requirements={"id": "\d+"})
     * @View(templateVar="fooBar")
     */
    protected $putFooBarAction($id);

    /** 
     * @Delete("/{id}", requirements={"id": "\d+"})
     * @View(templateVar="fooBar")
     */
    protected $deleteFooBarAction($id);
}

它工作正常,但我认为我正在失去自动路由的力量 .

编辑

这是我的路由配置文件的一部分:

foo-bars:
    type:     rest
    resource: FooBundle\Controller\FooBarsController