【问题标题】:In this Symfony2 REST API tutorial, where is the 'posts' path part defined in the routes?在这个 Symfony2 REST API 教程中,路由中定义的“帖子”路径部分在哪里?
【发布时间】:2014-12-11 17:30:55
【问题描述】:

我已成功完成this tutorial,以学习如何使用 Symfony2 实现 REST API。

在本教程中,生成的 REST 控制器中动作的每个路由的路径格式如下:

/api/posts/…

我的问题是;如何以及在哪里定义路径的“帖子”部分?

感谢任何帮助。

【问题讨论】:

    标签: php rest symfony routing


    【解决方案1】:

    它应该在你的控制器中指定(如果使用注释,否则在你的包的路由文件中),它是由下面的命令行脚本自动生成的。

    php app/console voryx:generate:rest --entity="AcmeDemoBundle:Post"
    

    似乎将实体名称复数以生成路由。从捆绑包中发布您的控制器和路由文件以进行确认。

    【讨论】:

      【解决方案2】:

      我刚刚发现这是由 FOS\RestBundle 使用隐式资源名称定义定义的,它查看控制器名称并将其设为复数(显然必须以单数形式开始才能工作!)。

      在本教程中,控制器名称通过 @ResourceRoute("Post") 注释被覆盖,因此使用它来代替实际的控制器名称。

      我能够根据FOSRestBundle documentation 中的信息弄清楚这一点。

      【讨论】:

        【解决方案3】:

        来自 Git 上的文档:

        api_posts:
            type:     rest
            resource: "@AcmeDemoBundle/Controller/PostController.php"
            prefix: /api
        

        ..我会说他们使用标准控制器注释为实体添加前缀:

        /**
         * Post controller.
         *
         * @Route("/posts")
         */
        class PostController extends Controller {
        [..]
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-02-15
          • 2017-01-21
          • 1970-01-01
          • 2017-10-07
          • 1970-01-01
          • 2019-05-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多