web-services - SOAP 或 REST 作为客户端

标签 web-services rest soap preferences

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center寻求指导。




10年前关闭。




我看到多个问题询问 Web 服务本身的开发中哪个更好,SOAP 或 REST。但是,从客户的角度来看,关于利弊的讨论并不多。如果您要编写一个应用程序并在两种 Web 服务 API 之间进行选择,它们在各方面都相似,除了一个是 SOAP,另一个是 REST,您会选择哪个,为什么? REST 具有允许 XML 或 JSON 的额外好处,两者之间还有其他主要区别吗?

最佳答案

哇,10 个小时,到目前为止还没有答案。通常这些类型的问题会在瞬间跳出来。

无论如何,这里对你的问题有点奇怪的答案。选择应该取决于几件事:

  • 这两个 API 的文档有多好。
  • API 更改的可能性有多大。
  • 我有多少时间生产客户
  • 客户端可能使用多长时间。
  • REST api 文档是否包含 URL 列表以及它们返回的 XML/JSON?

  • 无论哪个 API 有更好的文档,都可能是更好用的 API。这不能保证,但它是一个很好的指标。如果实现是垃圾,那么无论 SOAP 是否比 REST 更好,反之亦然,无论哪种方式,您都会受到影响。

    如果这是一个由初创公司创建的全新 API,它可能会在明年显着发展,那么 REST API 可能会更容易管理。 SOAP api 往往非常脆弱,并且由于生成的客户端代理代码需要频繁的客户端重新编译。

    尽管我讨厌客户端生成的代理代码有 1001 个原因,但如果您需要让某些东西真正快速运行。将您最喜欢的 IDE 指向 WSDL block 将很快让您使用对象模型。这绝对是让某些东西工作的最快方法。

    如果客户端将存在数年,那么我相信值得投入时间来生产一个好的 REST 客户端。基于 REST 的方法对随着时间的推移将发生的不可避免的变化更具弹性。与基于 SOAP 的版本相比,版本 REST 客户端还有更多选择。

    最后一项是测试 REST API 是否是真正的 REST 接口(interface)的试金石。如果文档是 http 端点的目录,那么您可以确信设计人员不知道 REST 是什么,所以远离它。

    关于web-services - SOAP 或 REST 作为客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1607551/

    相关文章:

    java - Android 上的 Ksoap——从 Java Web 服务获取列表响应

    javascript - 使用 fetch API 查询端点以获取 json 响应并返回空响应错误

    python - 序列化具有一对一关系的对象 Django

    java - 在 CXF 中的传出 SOAP 消息上添加凭据?

    java - 在 JPOS 中放置自定义逻辑的正确位置是什么?

    php - 无法使用 Tera-WURFL 获得正确的手机屏幕尺寸

    java - 如何在java中使用HTTPS wsdl文件而不下载到本地计算机

    java - 如何在 Jax rs 中运行 localhost url 进行发布

    linux - 分配服务器CPU核心来执行特定调用

    PHP SoapClient - 可能的名称间距问题 - 非 wsdl 模式