3

我知道已经有很多关于 SO 的讨论,包括 SOAP、膨胀、XML 和 REST 等替代机制。

这是情况。一个新的团队成员真的在谈论基于手工实现协议的难度的 SOAP。他推荐使用 gSOAP(项目全部使用 C++)。他说的是 WSDL 之类的东西可以清理大量杂乱的手工编码 C++。

现在,我正在处理大多数使用基于 XML 的文本消息和 expat XML 库的网络。所以我有一些与修改消息格式或添加参数列表相关的编程工作(不多)。在发送端,我打包一个 XML 请求并通过一个普通的旧 TCP 套接字发送它。在接收方,我使用 DOM 或 SAX 解析 XML。等等。到目前为止它运行良好。XML 消息非常紧凑,平均最多只有几百个字符。我理解这些信息中的每一项。

我们希望使用 PHP 编码的网站可以访问产品的一部分(服务器)。这在一定程度上推动了这个想法,即 SOAP 接口对于脚本编写者来说将“更容易”。这个项目的每个人都相信 SOAP 是他们的救赎。

我认为像 gSOAP 这样的新大型库的引入对成熟项目的发展势头具有极大的破坏性。

我想知道的是,是否有一种不同的、更紧凑的方式来做 SOAP 给我们的事情。以及如何平衡 gSOAP 或其他 SOAP 工具的主张,使开发生活更轻松与严峻的现实。

IE,有人告诉我 WSDL 比使用 XML 库手动编码 C++ 更好、更容易、更熟练等。它将 C++ 对象的语义直接放入网络消息的声明中。问题是,我定义的许多 XML 消息在接收端并没有一对一地映射到单个不同的对象。

或者,我可能什么都不担心。

但是,当我在这里扫描消息时,现实似乎与我在当地被告知的内容相矛盾。

4

4 回答 4

5

我不买肥皂。

Don Box 对简单对象访问协议的最初设想现在一点也不简单。它变得臃肿,由委员会设计的烂摊子。

加上对臃肿库的所有额外依赖,你可能会遇到麻烦。

工具供应商喜欢 SOAP,但我看不到其他任何人。

于 2009-10-17T17:52:47.727 回答
3

我想你会发现 PHP 开发者更喜欢 RESTful 接口。这是一篇关于它的 2003 年文章。

http://onlamp.com/pub/a/php/2003/10/30/amazon_rest.html

RESTful 接口是一种日益增长的现象,如果您需要吸引开发人员加入您的平台,那么赶上潮流会更容易。

话虽如此,您是否有充分的理由不能支持多个接口?这在没有固定受众的 Web 服务中相当常见。您可以支持您的遗留模型、干净的 RESTful 模型和 SOAP/WSDL 模型。然后在 6 个月到一年后进行盘点,看看哪种模型最受欢迎且支持最少。

在使网站更容易被外人访问时,REST 具有更广泛的用途。就保存您的项目而言,SOAP 可能会这样做,因为它需要在接口设计中进行一定程度的严格性,但是对于 REST 也可以这样说。如果这是一个关键标准,那么您可能应该放弃手动编码的 XML,而采用可以作为 REST 和 SOAP 实现的高级接口设计。

我知道有些人认为 SOAP 和 REST 是根本不同的方法,但是如果您采用 RESTful 方法进行界面设计,那么创建 SOAP 版本应该不会有很大困难。不要试图以相反的方式去做。

于 2009-10-17T18:50:55.347 回答
1

这是一个经典的、搞笑的、对 SOAP 的揭穿——“S”代表“简单”。我搬到的社区完全转换为 REST。

于 2009-10-17T18:28:57.280 回答
0

如果您查看网上的 RESTful 接口,您会注意到几乎普遍避免使用 SOAP 。SOAP 是如此复杂的野兽,它有效地锁定了没有现有 SOAP 包的语言,因为没有人会自己实现它。另一方面,原始 XML 在这一点上是相当普遍的,如果必要的话,在内部实现并不难。

于 2009-10-17T18:25:04.800 回答