我是新来的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'),
任何人都可以解释一下,这个模式到底做了什么,以及我需要做些什么更改才能运行我的查看电话
答案 0 :(得分:2)
也许我误解了,但我想你需要做以下事情:
将您的api控制器放在单独的模块中(例如以api
命名)并在您的网址管理器中指定以下规则:
// 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 - 用户列表(
actionList()
控制器中的users
)获取:/ api / users / 12 - ID = 12的用户(
actionView()
users
控制器)POST:/ api / user - 在
actionCreate()
控制器中创建新用户(users
)PUT:/ api / user / 12 - 更新ID为12的用户
actionUpdate()
users
控制器)删除:/ api / user / 12 - 删除ID为12的用户
actionDelete()
users
控制器)