微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Rest Api模式解释?

我是新来的休息api.

我想知道rest api的路由是如何工作的.我有一个api工作在一个路由,而不是在另一个..我需要做什么确切的修改,以便将每个api调用绑定到特定的VERB.

例如我希望/ customer / view只能通过GET动词调用,put和post应该不能进行此调用,这是否可以与路由设置有关

这是我的路线..

有效的方法如下:

'<controller:\w+>'                   => '<controller>/list',
'<controller:\w+>/<action:\w+>'      => '<controller>/<action>',
'<controller:\w+>/<id:\d+>/<title>'  => '<controller>/view',
'<controller:\w+>/<id:\d+>'          => '<controller>/view',

一个不起作用的是这个..特别是这样调用的视图,基本上我可以从任何VERB调用它,如何绑定到特定的动词

https://myipaddress/wiz-frontend-himanshu/customer/view/?id=test

休息路线

array('customer/list', 'pattern'=>'customer/<model:\w+>', 'verb'=>'GET'),
array('customer/view', 'pattern'=>'customer/<model:\w+>/<id:\w+>', 'verb'=>'GET'),
array('customer/update', 'pattern'=>'customer/<model:\w+>/<id:\d+>', 'verb'=>'PUT'),
array('customer/delete', 'pattern'=>'customer/<model:\w+>/<id:\d+>', 'verb'=>'DELETE'),
array('customer/create', 'pattern'=>'customer/<model:\w+>/<id:\d+>', 'verb'=>'POST'),

任何人都可以解释,这个模式究竟做了什么,以及我需要做些什么更改才能运行我的查看调用

解决方法:

也许我误解了,但我想你需要做以下事情:

将您的api控制器放在单独的模块中(以api命名)并在您的URL管理器中指定以下规则:

// GET
array('api/<controller>/list', 'pattern'=>'api/<controller:\w+>', 'verb'=>'GET'),
array('api/<controller>/view', 'pattern'=>'api/<controller:\w+>/<id:\d+>', 'verb'=>'GET'),
// POST
array('api/<controller>/create', 'pattern'=>'api/<controller:\w+>', 'verb'=>'POST'),
// PUT
array('api/<controller>/update', 'pattern'=>'api/<controller:\w+>/<id:\d+>', 'verb'=>'PUT'),
array('api/<controller>/update', 'pattern'=>'api/<controller:\w+>', 'verb'=>'PUT'),
// DELETE
array('api/<controller>/delete', 'pattern'=>'api/<controller:\w+>/<id:\d+>', 'verb'=>'DELETE'),
array('api/<controller>/delete', 'pattern'=>'api/<controller:\w+>', 'verb'=>'DELETE'),

所以你可以通过这个网址给你的api打电话:

GET: /api/users – list of users (actionList() in users controller)

GET: /api/users/12 – user with id = 12 (actionView() in users
controller)

POST: /api/user – create new user (actionCreate() in users controller)

PUT: /api/user/12 – update user with id = 12 (actionUpdate() in users
controller)

DELETE: /api/user/12 – delete user with id = 12 (actionDelete() in users
controller)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐