2014-02-25 29 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