Web services 在服务器端使用表示业务异常的HTTP响应代码是否合适?
背景是这样的:Web services 在服务器端使用表示业务异常的HTTP响应代码是否合适?,web-services,exception,http-headers,http-status-codes,Web Services,Exception,Http Headers,Http Status Codes,背景是这样的: 客户端web浏览器向服务器发送请求 服务器程序将在执行实际工作之前启动一些业务检查规则 如果检查失败,应将一些提示反馈到客户端浏览器 所以,问题来了。我应该使用错误响应http代码来表示这一点,还是直接使用200,然后从响应体解析消息 有时候,这不是问题。但是,如果返回错误代码,一些客户端组件会给出一些util方法。所以,这是一个很难做出的决定: 返回200,然后返回错误消息。自己解析并展示它们 返回一些代码,比如500,让客户端组件直接显示它 我建议使用尽可能多的http状态码
我建议使用尽可能多的http状态码。这是一个标准,为什么不使用它们 以下是一些使用http状态代码有意义的示例:
- 有人想要一个不可用的数据集。找不到404
- 受保护的ressource需要身份验证
- 对于当前用户不可用的ressource,应获得403禁止
- 一个你不能很好处理的错误,写一个500状态
- 等等
还可以在那里查找-API的逻辑,您可以看到它的优点。通常,您需要指出服务失败的原因。返回自定义错误还可能允许客户端应用程序以适当的方式响应。例如,如果输入验证检查失败,我想用户会希望有机会修复并重新提交请求。HTTP错误不足以表明到底出了什么问题