我有一个CakePHP应用程序,并希望合并一个简单的REST API,首先只是为了没有身份验证的GET请求。
我有传统的结构,例如:
假设我想要一些REST API路由,我将如何将它们与我的普通视图和控制器方法一起添加。我认为有一个单独的apiPostsController
可能是一个好主意,但我不确定如何实施。
路由方面,对于给定的example.com/posts/view/123,API等效项可能是example.com/api/v1/posts/view/123。
我该如何实现?
查看the book,给定的说明使用了传统的控制器和已经用于实际查看应用程序的视图。
答案 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',
)
);
此路线应该有效。