在域数据上返回哪个HTTP状态错误?

时间:2012-01-23 03:36:18

标签: web-services rest http status

我正在开发一个与其他Web服务集成的RESTful应用程序。

我的问题是,如果我的客户发布对其中一个网络服务无效的数据,我应该返回哪个HTTP状态?例如,如果它发布的名称对我的应用程序使用的Web服务无效,我应该返回4 **状态代码中的哪一个,考虑到它是用户输入错误?

我做了一些考虑,以及为什么我不习惯使用它们:

  • 400:数据无效,但请求格式本身无效
  • 403:虽然数据无效,但服务器并未拒绝回复
  • 406:错误在提供的参数中,而不在“accept”标题
  • 412:错误与“If-Match”标题
  • 无关

那么,在这种情况下你会用什么?

2 个答案:

答案 0 :(得分:2)

坚持使用400,或者看看422(可能接近你所需要的)。

答案 1 :(得分:-1)

在现实生活中,REST和其他Web服务的HTTP状态代码可能含糊不清,难以明确指定。如果您的客户端实际上正在与代理服务器通信并且该代理发送回自己的状态,那么事情也会变得有趣。如果您的网络服务出现问题(可能在您的应用程序下方),您可能只会获得500个。

在过去,我会选择返回200并使用您自己的JSON或其他结构来为您的客户返回错误信息。