Php RESTAPI控制器/路由与普通html视图
我有一个CakePHP应用程序,并希望合并一个简单的RESTAPI,首先只用于未经身份验证的GET请求 我有传统的结构,例如:Php RESTAPI控制器/路由与普通html视图,php,rest,cakephp,cakephp-2.0,Php,Rest,Cakephp,Cakephp 2.0,我有一个CakePHP应用程序,并希望合并一个简单的RESTAPI,首先只用于未经身份验证的GET请求 我有传统的结构,例如: 邮政(邮政模型) postsController(posts控制器),方法名称与路由匹配 视图/帖子(帖子视图-例如index.ctp等) 假设我想要一些RESTAPI路由,我将如何将它们添加到我的常规视图和控制器方法中。我认为拥有一个单独的apispostscontroller可能是个好主意,但我不确定如何实现 就路由而言,对于给定的example.com/pos
- 邮政(邮政模型)
- postsController(posts控制器),方法名称与路由匹配
- 视图/帖子(帖子视图-例如index.ctp等)
apispostscontroller
可能是个好主意,但我不确定如何实现
就路由而言,对于给定的example.com/posts/view/123,API等价物可能是example.com/API/v1/posts/view/123
我该如何实现这一点
请看,给定的说明使用了传统的控制器和视图,这些控制器和视图已经用于实际查看应用程序。为什么您认为您需要另一个控制器?这不是干的。当你这样做的时候,你会复制很多 如果您的API方法的行为有这么大的不同,您仍然可以使用前缀路由,并使用API作为方法的前缀,例如:API_some_action() 我猜您的API使用的是XML或Json,请参阅本书的本章如何将其与常规HTML视图一起存档:
这条路线应该行。非常感谢。因此,如果我已经有了非api方法(索引、视图、编辑等),这是否意味着我需要在路由中为我的api方法添加前缀?例如,
/posts/api_view/123
阅读本节上述路线无需前缀路由,如果您想使用前缀路由,您必须熟练掌握。
Router::connect('/api/:version/:controller/:action/*',
array(),
array(
'version' => 'v1|v2',
)
);