【发布时间】:2014-12-11 17:30:55
【问题描述】:
我已成功完成this tutorial,以学习如何使用 Symfony2 实现 REST API。
在本教程中,生成的 REST 控制器中动作的每个路由的路径格式如下:
/api/posts/…
我的问题是;如何以及在哪里定义路径的“帖子”部分?
感谢任何帮助。
【问题讨论】:
我已成功完成this tutorial,以学习如何使用 Symfony2 实现 REST API。
在本教程中,生成的 REST 控制器中动作的每个路由的路径格式如下:
/api/posts/…
我的问题是;如何以及在哪里定义路径的“帖子”部分?
感谢任何帮助。
【问题讨论】:
它应该在你的控制器中指定(如果使用注释,否则在你的包的路由文件中),它是由下面的命令行脚本自动生成的。
php app/console voryx:generate:rest --entity="AcmeDemoBundle:Post"
似乎将实体名称复数以生成路由。从捆绑包中发布您的控制器和路由文件以进行确认。
【讨论】:
我刚刚发现这是由 FOS\RestBundle 使用隐式资源名称定义定义的,它查看控制器名称并将其设为复数(显然必须以单数形式开始才能工作!)。
在本教程中,控制器名称通过 @ResourceRoute("Post") 注释被覆盖,因此使用它来代替实际的控制器名称。
我能够根据FOSRestBundle documentation 中的信息弄清楚这一点。
【讨论】:
来自 Git 上的文档:
api_posts:
type: rest
resource: "@AcmeDemoBundle/Controller/PostController.php"
prefix: /api
..我会说他们使用标准控制器注释为实体添加前缀:
/**
* Post controller.
*
* @Route("/posts")
*/
class PostController extends Controller {
[..]
【讨论】: