PUT请求更新非对应日程事件时的合适HTTP错误码咨询
问题解答
首先直接给出结论:返回400 Bad Request并不合适,更推荐返回404 Not Found。
原因如下:
- 400状态码的核心适用场景是请求本身存在语法或语义错误,比如请求体格式不符合要求、参数类型错误、缺少必填参数等。但你的场景里,用户的请求语法完全合规,请求体格式也正确,只是请求的目标资源(日程1下的事件3)根本不存在。
- 404 Not Found才是用来表示请求的资源不存在的标准状态码,这完全匹配当前场景:用户尝试访问一个不存在的关联资源(日程1和事件3没有绑定关系,相当于这个组合资源不存在),返回404能更清晰地告知用户问题所在。
如果想要更精准地表达“请求语法正确,但无法处理该请求(因为资源关联不匹配)”,也可以考虑返回422 Unprocessable Entity,但在RESTful接口的常规实践中,404是更直观、更被广泛接受的选择。
内容的提问来源于stack exchange,提问作者user19187727
相关产品推荐
相关产品推荐

