我为使用yii的REST API构建定义了如下的url模式。
'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>array(
array('api/default/list', 'pattern'=>'api/<model:'w+>', 'verb'=>'GET'),
array('api/default/view', 'pattern'=>'api/<model:'w+>/<id:'d+>', 'verb'=>'GET'),
array('api/default/update', 'pattern'=>'api/<model:'w+>/<id:'d+>', 'verb'=>'PUT'),
array('api/default/delete', 'pattern'=>'api/<model:'w+>/<id:'d+>', 'verb'=>'DELETE'),
array('api/default/create', 'pattern'=>'api/<model:'w+>', 'verb'=>'POST'),
'<controller:'w+>/<action:'w+>'=>'<controller>/<action>',
),
),
我现在正在尝试的是
http://example.com/RestApi/index.php/api/post?偏移=5&限制=10
上面的有效,但下面的无效。
http://example.com/RestApi/index.php/api/post/offset/5/limit/10
我怎样才能让它像第二种方式一样工作?需要对Url管理器进行哪些更改?
感谢
更新
第二种方式的错误是,
无法解析请求"api/post/offset/5/limit/10"。
你可以试试这个:
'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>array(
array('api/default/view', 'pattern'=>'api/<model:'w+>/<id:'d+>/*', 'verb'=>'GET'),
array('api/default/list', 'pattern'=>'api/<model:'w+>/*', 'verb'=>'GET'),
.............
),
),
我移动了api/default/view
规则以避免覆盖其他规则。