REST API控制器/路由以及普通的html视图

时间:2014-02-25 14:48:21

标签: php rest cakephp cakephp-2.0

我有一个CakePHP应用程序,并希望合并一个简单的REST API,首先只是为了没有身份验证的GET请求。

我有传统的结构,例如:

  • 发布(发布模型),
  • postsController(发布控制器),方法名称与路由匹配。
  • 观点/帖子(发布观点 - 例如index.ctp等)

假设我想要一些REST API路由,我将如何将它们与我的普通视图和控制器方法一起添加。我认为有一个单独的apiPostsController可能是一个好主意,但我不确定如何实施。

路由方面,对于给定的example.com/posts/view/123,API等效项可能是example.com/api/v1/posts/view/123。

我该如何实现?

查看the book,给定的说明使用了传统的控制器和已经用于实际查看应用程序的视图。

1 个答案:

答案 0 :(得分:0)

为什么你认为你需要另一个控制器?这不是DRY。当你这样做时,你会复制很多。

如果您的API方法的行为差异很大,您仍然可以使用前缀路由并使用api为方法添加前缀,例如:api_some_action()。

我猜您的API使用的是XML或Json,请参阅本书的这一章,了解如何将其与常规HTML视图一起存档:JSON and XML Views

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

此路线应该有效。