2014-02-25 27 views
0

我有一個CakePHP應用程序,並且想要合併一個簡單的REST API,首先僅用於GET請求而不進行身份驗證。REST API控制器/路由與正常的html視圖一起

我有傳統的結構,例如:

  • 後(POST模式),
  • postsController(posts控制器),方法名路由匹配。
  • 的意見/職位(職位觀點 - 例如index.ctp等)

說我想了幾個REST API的路線如何將添加他們一起我正常的意見和控制器的方法。我認爲有一個單獨的apiPostsController可能是一個好主意,但我不知道如何實施。

路由明智的,對於給定example.com/posts/view/123,API等效物可能是example.com/api/v1/posts/view/123。

我該如何實施?

看着the book,給出的指令利用了傳統的控制器和視圖,這些控制器和視圖已經在用於實際查看應用程序。

回答

0

爲什麼你認爲你需要另一個控制器?這不是乾的。當你這樣做的時候你會複製很多東西。

如果您的API方法行爲差異很大,您仍然可以使用前綴路由並將方法與api前綴,例如:api_some_action()。

我想你的API使用的是XML或Json,請參閱本書的這一章,如何將這一點歸於常規HTML視圖:JSON and XML Views

Router::connect('/api/:version/:controller/:action/*', 
    array(), 
    array(
     'version' => 'v1|v2', 
    ) 
); 

此路線應該工作。

+0

非常感謝。所以,鑑於我已經有非API方法(索引,視圖,編輯等),這意味着我需要在路由中添加我的API方法的前綴?例如。 '/ posts/api_view/123' – harryg

+0

閱讀本節http://book.cakephp.org/2.0/en/development/routing.html#prefix-如果您想使用前綴路由,您可以使用前綴路由必須善於使用它。 – burzum