【发布时间】:2021-04-20 20:38:32
【问题描述】:
对于要为我正在构建的 API 返回哪些 HTTP 状态代码感到有些困惑。允许客户查询产品库存和进行租赁预订的 API。
问题是在以下类似情况下什么时候用400s,什么时候用200s:
- 最终用户提出了有效的预订请求,但他们所请求的项目在他们选择的日期都已预订完毕。
- 最终用户提出了有效的预订请求,但订单日期过早。重要信息:我们需要至少两天通知才能完成订单。
- 最终用户尝试在第一次保留我的
{orderId}/confirm端点后的第二天调用它。关键信息:您必须在预订后 15 分钟内确认订单,否则将超时。
请求格式正确,它们引用的资源都存在,那么我们真的可以称它为客户端的错误吗?如果不是,那么返回 400 个代码是否合适?
在这些情况下,您会使用哪种 HTTPStatus? 200 年代的东西还是 400 年代的东西?
【问题讨论】:
-
看到这个,看起来很相关。很好读。 softwareengineering.stackexchange.com/questions/341732/…
-
因为它们都会在某个时候中断,所以我肯定会使用 4xx。按顺序:422 无法处理的实体、409 冲突、408 请求超时This 可能会有所帮助。
标签: spring-boot api rest httpresponse