【问题标题】:Custom Response code and response message in restfull and SOAP servicesRESTful 和 SOAP 服务中的自定义响应代码和响应消息
【发布时间】:2021-06-15 22:13:34
【问题描述】:

我正在开发 Web 服务 restful 和 SOAP 服务,我想知道如果我使用响应正文中包含的自定义响应代码和自定义响应消息会怎样,并且在大多数情况下,http 响应状态代码将返回为 (200 ok)所以处理错误会更容易,我想知道这种方式是否可以接受

【问题讨论】:

  • “restful”和“SOAP”是完全不同的东西,有着不同的要求。
  • 您的评论对我的问题没有附加价值。

标签: api rest http


【解决方案1】:

在 HTTP 中,状态行的定义位于 RFC 7230

status-line = HTTP-version SP status-code SP reason-phrase CRLF

事实证明,原因短语并不是特别重要;客户端在处理 HTTP 响应时应该忽略原因短语。


响应消息的其余部分将根据为该状态代码定义的语义进行解释

状态码是transfer of documents over a network域中的重要元数据;通用客户端使用它来了解 HTTP 响应的性质,以便他们可以做一些智能的事情。

(在智能方面:自动跟踪重定向,重试附加身份验证凭据的请求,cache invalidation)。

互联网上有很多您无法控制的代码,它们理解标准化的 HTTP 语义。当你不尊重标准化的语义时,你就会引入一些其他代码会误解你的响应的风险;发生这种情况时,blame lies squarely with your implementation,而不是客户端。

用另一种方式表达:违反标准并不会让事情变得“更容易”;它所做的是在需要完成工作的地方移动。遵守标准就是公平地分担工作;把你的工作分担给你的客户是不礼貌的。


也就是说,如果您仔细观察,您会发现很多地方确实有人故意违反标准(我在进行健康检查时看到了这一点)。不保证违反标准的可怕后果。

【讨论】:

    【解决方案2】:

    对适当的错误使用适当的状态代码。 SOAP 和 REST 都应该在有意义的地方使用 4xx 和 5xx。如果您正在寻找 REST 的良好标准响应类型,请选择 application/problem+json,对于 SOAP,请使用 SOAP 的标准。

    每个客户端在收到 HTTP 错误时仍应正常运行,但不支持/理解响应正文。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-06
      • 2017-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多