【问题标题】:How to design header information in SOAP web service?如何在 SOAP Web 服务中设计标头信息?
【发布时间】:2024-05-20 17:20:01
【问题描述】:

在 REST API 中,响应中的某些额外信息放置在 HTTP 标头中。例如,当 API 有速率限制时,响应的标头中可能包含 X-RateLimit-Limit。这是非常直接的。

但是,在 SOAP 1.1/1.2 Web 服务 API 中执行相同操作的等价物或约定是什么?

使用与X-RateLimit-Limit 相同的示例,是否应该像在 REST API 中一样将信息添加到 SOAP 响应的 HTTP 标头中?

【问题讨论】:

    标签: api web-services soap http-headers


    【解决方案1】:

    SOAP1.1 / SOAP1.2而言,没有明确的guidelines定义与rate-limits相关。

    The SOAP headers 包含与 SOAP 消息相关的应用程序特定信息。它们通常包含路由信息、身份验证信息、事务语义等。这些特定于 SOAP 消息,并且独立于 SOAP 使用的传输(在本文的范围内:HTTP)。

    HTTP headers 定义 HTTP 事务的操作参数,例如传输内容的内容类型、内容长度、客户端或代理的缓存指令等。这些是特定于 HTTP 的,与实际获取的内容无关使用 HTTP 传输(在本例中为 SOAP XML)。

    使用与 X-RateLimit-Limit 相同的示例,是否也应该像在 REST API 中一样将信息添加到 SOAP 响应的 HTTP 标头中?

    HTTP 标头通常停在 Web 服务器上,不应该转到应用程序,如果我们应用这个逻辑,那么我们可以得出结论,rate-limit 应该由 web-serverAPI gateway 处理而不是然后application。 此外,rate-limit 对于SOAPREST 服务的处理方式应该相同,而不是不同。像content-typecontent-lengthencoding 等通常是HTTP 标头,而不是SOAP 标头。

    因此,x-rate-limits 应该是 HTTP header 的一部分。

    我想从Docusign SOAP service 提供一个相同HTTP 标头的example,它会在HTTP Header 中发送X-rate-limit 标头。

    我不认为,这个问题可以有非常明确的答案,但我希望,我涵盖了一些可以帮助其他人的指针。

    【讨论】: