【发布时间】:2015-02-18 17:40:16
【问题描述】:
我刚刚注意到我的应用程序中可能有一些不正确的地方。在很多时候,我都会发布需要某些输入参数才能继续插入数据的表单。例如,要将用户添加到您的联系人列表中,首先该用户必须存在,我这样做很简单
$db = \Database::connection();
$user = new \Models\User();
$user->getById($data['id'], $db);
if ($user->id) {
if (\Models\User::auth()->addContact($user, $db)) {
return \Response::json(['text' => 'Contact added']);
} else {
throw new \Exception('User not found', 404);
}
}
忽略所有其他可能的错误,只关注user not found 一个,我只是注意到我返回了一个 404 代码,我对此表示怀疑。在我编写这段代码的时候,我肯定被消息中的not found 部分激怒了,并自动认为这是一个 404 错误。不过现在想起来404错误其实是“找不到资源”,不求资源怎么找不到资源,这是我的逻辑。
向 POST 请求返回 404 错误是否正确,或者我应该切换到 400?
【问题讨论】: