爲了學習如何使用Symfony2實現REST API,我已成功完成this tutorial。在這個Symfony2 REST API教程中,路徑中定義的'posts'路徑部分在哪裏?
在教程,用於在所生成的REST控制器的操作的每個路徑的路徑是在以下格式:
/api/posts/…
我的問題是;路徑的'posts'部分如何以及在哪裏定義?
感謝任何幫助。
爲了學習如何使用Symfony2實現REST API,我已成功完成this tutorial。在這個Symfony2 REST API教程中,路徑中定義的'posts'路徑部分在哪裏?
在教程,用於在所生成的REST控制器的操作的每個路徑的路徑是在以下格式:
/api/posts/…
我的問題是;路徑的'posts'部分如何以及在哪裏定義?
感謝任何幫助。
我剛剛發現這是由FOS \ RestBundle使用隱式資源名稱定義來定義的,它會查看控制器名稱並使其成爲複數形式(顯然必須以單數形式開始才能工作!) 。
在本教程中,通過@ResourceRoute(「Post」)註釋覆蓋控制器名稱,所以使用它來代替實際的控制器名稱。
我能夠根據FOSRestBundle documentation中的信息計算出來。
從上Git的文檔:
api_posts:
type: rest
resource: "@AcmeDemoBundle/Controller/PostController.php"
prefix: /api
..I'd說,他們使用的前綴的標準控制器註解自己的實體:
/**
* Post controller.
*
* @Route("/posts")
*/
class PostController extends Controller {
[..]
應該在你的控制器指定(如果使用註釋,否則在您的包的路由文件中),這是由下面的命令行腳本自動生成的。
php app/console voryx:generate:rest --entity="AcmeDemoBundle:Post"
它似乎多元化了生成路線的實體名稱。從包中發佈您的控制器和路由文件以確認。