restfull 和 SOAP 服务中的自定义响应代码和响应消息

时间:2021-03-18 13:41:26

标签: api rest http

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

2 个答案:

答案 0 :(得分:0)

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

如果每个客户端收到 HTTP 错误,它们的行为仍应正确,但不支持/理解响应正文。

答案 1 :(得分:0)

在 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,而不是客户端。

换种说法:违反标准并没有让事情变得“容易”;它所做的是在需要完成工作的地方移动。遵守标准就是公平地完成工作;把你的工作分担给客户是不礼貌的。


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