【发布时间】:2021-03-27 15:48:54
【问题描述】:
在构建 RESTful API 并且用户提供不存在的资源的 id 时,您应该返回 404 Not Found 还是 400 Bad Request。
例如:
https://api.domain.com/v1/resource/foobar
foobar 不存在的地方。
【问题讨论】:
-
在设计 api 时,自我记录是很重要的,因此当出现错误时,提供的 api 引导消费者纠正课程非常重要。抛出 404 首先是错误的文档,但也具有误导性。同样重要的是要注意 URL、HEADERS、BODY 都是请求的一部分,如果其中任何一个格式不正确,那么我会更喜欢 api 提供者返回明确的响应,这样我就可以正确。此外,我更喜欢格式良好的 req 进入我的内部应用程序甚至数据存储以避免不必要的意外。
-
使用 404 并关注datatracker.ietf.org/doc/html/rfc7231#section-6.5.1 :“响应头字段允许服务器传递有关响应的附加信息,而不是放置在状态行中的信息。这些头字段提供有关服务器的信息,关于进一步访问目标资源,或关于相关资源。”
标签: rest