在routes.php中我添加
$routes->extensions(['json']);
$routes->resources('News');
当在邮递员中我输入网址并选择方法GET
时,框架会将我重定向到index()
操作,如果我选择方法POST
框架将我重定向到add()
方法,但如果我选择方法DELETE
,我会再次转到index()
。如果我选择方法DELETE
?
//////////////////
我理解我的问题。一切顺利。问题在我的网址中。我选择了方法Delete
,我的网址是rest.app/api/news
。这就是为什么框架会将我重定向到index()
行动但是如果我放rest.app/api/news/1
并获取方法Delete
我转到delete()
行动
答案 0 :(得分:1)
REST应该按如下方式工作:
GET / users列出用户。
GET / users / 5显示用户5。
POST / users添加用户。
DELETE / users / 5删除用户5。
在您的控制器操作中,检查请求方法,并调用相应的代码。
这是我自己的一个休息控制器中的索引动作:
public function indexAction()
{
switch ($_SERVER['REQUEST_METHOD']) {
case 'POST':
$json = $this->createRecord();
break;
case 'PUT':
case 'PATCH':
case 'DELETE':
$json = $this->sendJSONResponse(array('error' => 'Invalid HTTP Method, did you send an ID?'), self::RESPONSE_NOT_FOUND);
break;
case 'GET':
default:
$json = $this->listRecords();
break;
}
return $json;
}