【发布时间】:2012-04-13 10:56:39
【问题描述】:
我想编写一个连接到 SOAP 服务的简单 Haskell 程序。理想情况下,我希望使用服务的 WSDL 并尽可能直接地访问请求参数和响应数据。
我使用什么库?
到目前为止,我只找到了HAIFA,但它似乎在 2006 年左右就停止了开发,所以我不确定它是否是正确的选择。
2015 年 8 月 14 日更新:截至目前,一个名为 soap 的包以及协议支持包 soap-tls 和 soap-openssl 可以在 hackage 上使用并且看起来还活着。 p>
【问题讨论】:
-
Tangent:一般建议是尽可能选择 REST 而不是 SOAP。 (如果你不控制服务,那么显然这是不可能的。)
-
@DanBurton:如果我正在编写服务器,或者有其他选择,我肯定更喜欢 REST + (JSON|XML)。不幸的是,我有一个第 3 方服务可以与之交互。
-
遗憾的是,我不知道 Haskell 中有什么好的全面 SOAP 支持。我认为,当 SOAP 流行时,Haskell 并不是一种严肃的 Web 语言,而现在世界在很大程度上都在向前发展,因此对良好的 SOAP 支持从来没有强烈的动力。对于最小的 SOAP,而不是完整的野兽,使用 Haskell 非常好的 XML 库很容易做自己的事情。
-
那么,世界在很大程度上是如何发展的? SOAP 被积极使用。许多企业解决方案通过使用 SOA 并将 ESB 系统集成到他们的产品中而受益匪浅。 SOAP 最接近的替代方案是 REST,这对于真正的大型解决方案来说非常糟糕,因为它缺少服务定义,其中包括对服务的完整描述,包括操作、传输和类型信息。