我正在寻找有关从REST API返回错误的良好实践指南。我正在开发一个新的API,所以我现在可以朝任何方向发展。目前,我的内容类型是XML,但我计划将来支持JSON。
我现在添加了一些错误情况,例如,某个客户端尝试添加新资源,但已超出其存储配额。我已经在使用HTTP状态代码处理某些错误情况(身份验证为401,身份验证为403,普通错误请求URI为404)。我查看了受祝福的HTTP错误代码,但400-417范围似乎都不适合报告应用程序特定的错误。因此,起初我很想以200 OK和特定的XML有效负载返回我的应用程序错误(即,向我们支付更多,您将获得所需的存储空间!),但我停下来考虑一下,而且似乎很肥皂水(/耸了耸肩)。除此之外,感觉像是将错误响应分为不同的情况,因为有些是http状态代码驱动的,而另一些则是内容驱动的。
那么行业的建议是什么?良好做法(请解释原因!),以及从客户端pov看,REST API中的哪种错误处理使客户端代码的工作变得更轻松?