更正状态代码以发送给定 ID 与数据库中的对象不匹配的 HTTP POST 请求
Correct status code to send for an HTTP POST request where the given ID does not match an object in the database
假设我的 API 中有一个端点,具有以下 URL:
www.example.com/api/create-order-for-restaurant/
现在,在我的 POST 请求中,我发送以下数据:
{
"restaurant_id": 43,
"order": {...}
}
假设我的数据库中不存在 ID 为 43 的餐厅。应该发送回客户端的适当 HTTP 状态代码应该是什么?
我不知道应该发回 404
还是 500
。
这是一个客户端错误,因为客户端指定了 restaurant_id 不存在。
任何客户端错误的默认代码都是 400,它也适合这里。
有稍微更具体的客户端错误代码可能适用于这种情况,但它不是非常重要 除非 客户端可以使用此信息做一些事情。
所以 400、422 就可以了。 500 不是。 500 表示存在 server-side 问题,但据我所知,您描述的是客户端使用了不正确的 restaurant_id.
的情况
假设我的 API 中有一个端点,具有以下 URL:
www.example.com/api/create-order-for-restaurant/
现在,在我的 POST 请求中,我发送以下数据:
{
"restaurant_id": 43,
"order": {...}
}
假设我的数据库中不存在 ID 为 43 的餐厅。应该发送回客户端的适当 HTTP 状态代码应该是什么?
我不知道应该发回 404
还是 500
。
这是一个客户端错误,因为客户端指定了 restaurant_id 不存在。
任何客户端错误的默认代码都是 400,它也适合这里。 有稍微更具体的客户端错误代码可能适用于这种情况,但它不是非常重要 除非 客户端可以使用此信息做一些事情。
所以 400、422 就可以了。 500 不是。 500 表示存在 server-side 问题,但据我所知,您描述的是客户端使用了不正确的 restaurant_id.
的情况