在RESTful服务中使用http状态代码

时间:2016-02-18 19:17:08

标签: web-services rest error-handling architecture

我正在寻找一个很好的有意义的讨论,为什么人们认为RESTful Web服务劫持HTTP响应代码并在给定API的上下文中为它们赋予意义是一个好主意。我的直觉反对它:它认为HTTP在这里充当传输层协议,为什么我会将我的API概念泄漏到传输层?是的,我理解HTTP是27层图中的应用层,但分层是相对的。对于我的API,HTTP是一种传输方式 现在人们说,否则错误处理无法标准化。但REST并没有真正标准化它。我们可以对401和404消息感觉良好有点直观,但这就是它。它真正做的是让它更难以区分和API错误和API服务器不在那里/客户端没有指向正确的地方等。

1 个答案:

答案 0 :(得分:2)

您认为哪种方案会带来更好的结果:

  • 为API层重新使用200-OK,404-Not found,500-Error等HTTP状态代码表示类似的响应,这些响应主要保证在所有RESTful API供应商中以标准方式使用

OR

  • API供应商返回200-OK,并且邮件正文包含自定义响应信封或正文以表示类似的内容(如未找到和错误)

第一个场景还允许开发标准库与那些API进行通信,其中第二个场景意味着每个API都是一个独特的案例,并且错误处理,缓存等不能以标准方式完成。