REST 何时/如何取代 SOAP [关闭]

2024-04-24

我目前正在写关于 IT 技术等的论文,我有一章比较 REST 和 SOAP,但我找不到 REST 是如何以及何时(我指的是过去的一些事件之王)开始的(主要是在 Web 中) )取代 SOAP 作为 Web 服务技术。

你能帮我解决这个问题吗? ;)


谢谢你提供这个重要的信息,但我的意思是别的。

我想向您展示 Google Insights for Search Tool 中的一个图表:

正如你所看到的,2008 年有一些关键词搜索的交集数量之王rest api and soap api。所以,我想依赖一些来源(当然我没有)或事件/事实,为什么这种交叉可能发生......最近发生的事件。

你明白我的观点吗?我知道这可能是解决该主题的非常独特的方法,但我想解释一下这种肥皂和休息的交换。

EDIT

有人有什么主意吗?我知道这对于肥皂和休息 API 主题是不同的方法,但也许有人知道如何“咬住”这个主题;)


表述性状态转移 (REST) 一词由 Roy Fielding 于 2000 年在他的博士论文 http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm。 REST 描述了一种并非特定于 Web API 的 Web 架构,但作为一种开发 Web API 的方法现在已经变得非常流行。SOAP 于 2003 年 6 月成为 W3C 推荐标准 http://www.w3.org/2000/xp/Group/。因此从技术上讲,REST 是在 SOAP 之前定义的,但 SOAP 在一段时间内是开发 Web 服务的非常流行的方法,并且在一开始比 REST 更流行。但后来开发人员发现 SOAP 对于开发 Web 服务/API 来说过于臃肿且过于复杂,而 REST 可以很好地满足他们的需求。 REST 的简单性似乎使其更受欢迎,而且它遵守基本 HTTP 原则的事实使其在异构平台上更加可移植。因此,历史上可能没有某个里程碑或事件导致从 SOAP 到 REST 的转变。这只是一个逐渐过渡到最适合开发人员需求的方式。

澄清 SOAP 历史

SOAP 1.0 版本实际上是由 Microsoft 于 1999 年 12 月推出的,因此这两种技术的定义时间非常接近。但直到 2000 年 5 月,它才被提交给 W3C 成为标准,并且直到 2003 年才被提出建议。我认为,在它成为通用标准之前,整个开发社区都不能将其视为可行的东西。为异构环境开发 Web 服务,这是 Web 服务和 SOA 的一大承诺。在那之前它只是可以在微软平台上使用的东西。

根据 API 趋势评论进行更新

@GarciaPL 显示的 Google Insights 图表非常有趣,我想我理解他在论文中试图展示的内容。但在得出强有力的结论时,我会谨慎对待这些数据。博客文章中也显示了相同的 Google Insights 搜索“安息吧,肥皂 http://royal.pingdom.com/2010/10/15/rest-in-peace-soap/”。也许这篇博文中更具体的是一张图表,显示了从 2008 年到 2010 年 2,000 个 API 的趋势是转向 REST。此信息的原始来源是here http://blog.programmableweb.com/2010/06/09/new-job-requirement-experience-building-restful-apis/。这确实显示了公开 API 的 REST 趋势。这篇论文是专门讨论公开 API 的使用还是一般性的 Web 服务开发?如果是一般的网络服务,我不太确定。对于在 Microsoft 平台上开发内部项目的开发人员来说,今天使用的术语不是 SOAP,而是 Windows Communication Foundation (WCF)。尽管 SOAP 位于幕后,但几乎没有必要讨论管道,因为 WCF 隐藏了很多内部结构。如果我进行 Google Insights 搜索你会得到很多不同的结果,表明它们实际上是收敛的。或者如果您搜索它实际上表明 WCF 在 2008 年接管了 REST 的逐渐增长。

对于 API 来说,REST 很有意义,因为它们可移植、易于使用、可扩展且易于集成。对于一般网络服务的开发我不太确定。我认为 WCF 在微软开发者中仍然很受欢迎,并且它非常适合某些类型的项目。这只是为工作选择正确工具的问题。我会重申我之前说过的话,我不认为这是导致向 RESTful API 过渡的重大历史事件。我认为这只是开发人员了解什么是适合这项工作的工具。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

REST 何时/如何取代 SOAP [关闭] 的相关文章

  • 如何在WCF Rest服务中从流上传图像

    我正在尝试创建 wcf 服务 该服务将上传 pdf doc xls 图像等文件 但 pdf txt 文件正在上传并正确打开 但是当我尝试上传图像文件时 文件正在上传 但是图像不可见 OperationContract WebInvoke M
  • Silverlight WCF服务跨域问题

    我有一个 silverlight 应用程序 托管在 Intranet mydomain net 和一个 WCF 服务 webservices mydomain net 我需要跨站点策略文件吗 如果是这样 只允许从 Intranet mydo
  • WCF 回调:它可以与 Java 互操作吗?

    目前 我以 正常 方式实现所有 Web 服务 也就是说 我在 Eclipse 中创建一个 WSDL 文件 然后使用 WSCF blue 一个 Visual Studio 扩展 自动生成必要的代码 它是回复 请求 不过 我希望改用回调 这样我
  • Delphi DataSnap REST 服务器从 TStream 返回 JSON 数组,而不是二进制

    我有一个与 Android 客户端通信的 REST 服务器 我将它从 XE3 ish 升级到 Berlin 其中一个服务器方法返回一个包含 jpeg 的 TStream 并且工作得很好 很高兴将图像作为二进制图像返回 升级到 Berlin
  • 如何在 Jersey 容器中配置欢迎文件 (HTML/JSP)

    我有一个 Jersey RESTful Web 服务项目 我已经在中配置了 Jersey 容器web xml一切正常 在同一个项目中 我引入了一个 HTML 页面并包含在
  • Web API 和 ASP MVC 之间的主要区别是什么

    标题确实总结了我的问题 我已经使用了这两种技术 但我不确定其中一种技术与另一种技术有何显着不同 在本质上 在设计一个宁静的 Web 应用程序时 选择 ASP MVC 或 Web API 时应考虑哪些标准和 或指南 Purpose ASP N
  • 精简 PHP 和 GET 参数

    我使用 Slim PHP 作为 RESTful API 的框架 如何在 Slim PHP 中从 URL 获取 GET 参数 例如 如果我想使用以下内容 http api example com dataset schools zip 999
  • 使用 python 更新 Google 搜索方法

    我试图使用xgoogle https github com pkrumins xgoogle但我已经 3 年没有更新了 即使我设置每页 100 个结果 我也只能得到不超过 5 个结果 如果有人使用 xgoogle 没有任何问题 请告诉我 现
  • I/O 问题没有找到类 org.json.JSONObject 的序列化器,也没有发现创建 BeanSerializer 的属性

    不确定发生了什么 完整的错误是 Problem with i o No serializer found for class org json JSONObject and no properties discovered to creat
  • 如何限制 JSON 访问?

    我有一个 Web 应用程序 可以从新创建的 JSON API 中提取数据 我的静态 HTML 页面通过 JavaScript 从静态 HTML 页面动态调用 JSON API 如何限制对 JSON API 的访问 以便只有我 我的网站 可以
  • 您的 Web 服务版本控制最佳实践是什么?

    我们有 2 个独立的产品 需要通过 Web 服务相互通信 支持 API 版本控制的最佳实践是什么 I have 本文 http www ibm com developerworks webservices library ws versio
  • 在 WSDL 中包含 XSD

    我正在编写一个 wsdl 文件来在未来 SoapUI 中部署模拟服务 但我在包含我的 xsd 文件时遇到问题 XSD File
  • App.Config 和 Web.Config 之间的区别?

    当在 wpf 中构建桌面应用程序时 您可以阅读问题文档并在人们的答案引用 web config 时安全地替换 app config 吗 如果是这样 您是否需要注意任何明显的陷阱 tnx 阅读文档 http msdn microsoft co
  • NodeJS:将 JSON 保存到 MongoDB

    我正在尝试从 API 获取 JSON 并将其存储到 MongoDB 数据库中 显然 这是行不通的 我的应用程序似乎停留在我尝试将数据保存到数据库的位置 请告知该怎么做 这是我的代码 var express require express v
  • Ruby on Rails REST 设计问题 - 在账户之间转账

    我有一个 Account 类 想要实现转账屏幕以允许用户在 2 个账户之间转账 我将如何实现这种 RESTful 方式 我有标准帐户和休息操作 那很好 但我该如何实现转移呢 通常我只会向帐户控制器和相应的视图添加一个名为 transfer
  • JAX-RS 和 JAX-WS 有什么区别?

    阅读了几篇有关 JAX RS 和 JAX WS 的文章后 我有几个问题想确认一下 JAX RS可以像JAX WS一样做异步请求吗 JAX RS 能否访问不在 Java 平台上运行的 Web 服务 反之亦然 REST 对于配置文件有限的设备
  • Axis2 错误:要输出的文本中的空白字符 (0x4) 无效

    我创建了一个 Java 客户端 使用 Axis2 1 7 6 作为代码生成器与 SOAP Web 服务进行交互 问题在于客户端的某些输入抛出异常并显示以下消息 org apache axis2 AxisFault Invalid white
  • 无法以编程方式反序列化 SOAP 消息

    当我尝试反序列化肥皂消息时 出现以下异常 我这样做是因为我有想要在测试中重用的响应文件 我无法使用真正的服务等 因为它不适合我们拥有的测试框架的架构 Test MyUnitTestMethod failed System InvalidOp
  • 自托管 WCF REST 服务和基本身份验证

    我创建了一个自托管的 WCF REST 服务 带有 WCF REST Starter Kit Preview 2 中的一些额外内容 这一切工作正常 我现在正在尝试向服务添加基本身份验证 但我在 WCF 堆栈中遇到了一些相当大的障碍 这阻止了
  • Resteasy 可以查看 JAX-RS 方法的参数类型吗?

    我们使用 Resteasy 3 0 9 作为 JAX RS Web 服务 最近切换到 3 0 19 我们开始看到很多RESTEASY002142 Multiple resource methods match request警告 例如 我们

随机推荐

  • 访问被拒绝查找属性 ro.vendor.hwui.texture_cache_size

    在启动活动时我收到此错误 Access denied finding property ro vendor hwui texture cache size 在 Android OREO 之前一切都工作正常 但在 Android Pie 中却
  • 如何在android中一次完成多个活动?

    我的活动流程如下 活动 A gt 活动 B gt 活动 C gt 活动 D 当用户位于活动 D 上并单击名为 退出 的按钮时 应用程序应返回到活动 B 并完成活动 C 并D 我该怎么做 注意 活动 B 和活动 D 是相同的类 但不同的实例
  • Seaborn 用直方图绘制分布图,其中 stat = 密度或概率?

    我知道 默认情况下 直方图方法是计算出现次数 相反 我们可以用密度或概率来可视化分布 sns displot data stat density or sns displot data stat probability 我的问题是我应该使用
  • 如何设置USB连接模式?

    我正在编写一个应用程序 该应用程序应该将数据转储到 SD 卡上 然后在 PC 上编写另一个应用程序 当设备连接到 PC 时 在光盘驱动器模式下 该应用程序应该读取数据 在我的 HTC Legend 上 有一个对话框可供选择 仅充电 HTC
  • Rails:检索嵌套数据时出错

    我尝试模拟一个系统 其中学生在与练习相关的盒子中工作 class Student lt ActiveRecord Base belongs to box class Box lt ActiveRecord Base belongs to p
  • WPF可编辑组合框IsFocused问题

    我正在开发一个带水印的ComboBox通过修改ComboBox ControlTemplate 当一切都很好ComboBox不处于可编辑模式 但是当我将编辑模式更改为 True 时 IsFocused属性永远不会设置为 True 这是因为在
  • 为什么复制 eval 会改变它的行为?

    根据rollupjs 文档 https rollupjs org guide en eval2 eval 简单地 复制 eval 为您提供了一个执行完全相同操作的函数 但该函数在全局范围而不是本地范围内运行 var eval2 eval f
  • 如何避免硬编码密钥进行加密(目标 C)?

    在我的 Objective C 代码中 我在代码中硬编码了一个消费者密钥和秘密 以用于 SHA 1 加密 我想知道是否可以避免硬编码以提高安全性 到目前为止我发现了以下内容 发现1 https www owasp org index php
  • ECMAScript 6 的 function.name 属性

    简单问题 这段代码的正确结果是什么 let f function let n f name or f 根据兼容表 http kangax github io compat table es6 n应该有这个值 f 然而 Mozilla 文档
  • 正则表达式捕获部分行

    我一直在努力捕获 snmp 响应的一部分 Text IF MIB ifDescr 1 1 1 g1 Office to DMZ Regex P
  • 如何使用我自己的 CSS 设计 Twitter 小部件的样式

    我有自己的 Twitter feed 设计 并且我想使用我自己的设计来设计默认 feed 的样式 有没有办法做到这一点 问题是您无法使用 CSS 选择器 因为它仅在加载页面后才出现 请检查这张图片 让您更多地了解我需要什么 Thanks 好
  • 使用 FileSystemWatcher 从文件中获取新行

    我正在观看一个包含以下代码的文件 FileSystemWatcher watcher new FileSystemWatcher watcher Path C watcher Filter t log watcher Changed new
  • matlab中的分箱

    我一直无法在 matlab 或 Octave 中找到函数来完成我想要的操作 我有一个两列的矩阵 m x 和 y 值 我知道我可以通过执行 m 1 或 m 2 来提取列 我想将其分成 可能 大小相等的较小矩阵 并绘制这些矩阵的平均值 换句话说
  • 替换sql server 2000中的ntext(超过4000个字符)

    如何替换sql server 2000中ntext列中超过4000个字符的文本 转换为 nvarchar max 不起作用 因为它会截断值 使用 TEXT NTEXT 是一团糟 这是尽快摆脱这些字段的众多原因之一 您需要使用 READTEX
  • 如何在Linux内核中启用CONFIG_PREEMPT选项?

    我是 Linux 内核编程的新手 尝试在 x86 64 上使用旧内核 Linux 2 6 32 我想启用其中的 CONFIG PREEMPT 选项 但找不到有关如何执行此操作的信息 我可以使用我的首选选项编译新内核 但不知道在这种情况下我需
  • 如何在没有 JoinTables 的 JPA 中创建一对多关系?

    我正在尝试使用以下表结构在 JPA 中创建 OneToMany 关系 CATALOG catalogId PK name PRODUCT productId PK name catalogId FK 我将类定义为 Entity public
  • Neo4j - 计算带有标签的节点

    我想要一个查询来计算数据集中有多少个节点具有每个标签 例如 标签A 100 标签B 200 我可以为每个单独的标签执行此操作 例如 MATCH n LabelA return count n 但是 我想在一个命令中为每个标签执行此操作 尝试
  • 普通的 console.warn() 显示在日志中,并带有服务器性“错误”

    当我记录一些东西时console warn 它似乎出现在 Stackdriver 日志中 严重性为 错误 Stackdriver 错误报告不显示这些错误 因此它们似乎不被视为错误 这使得无法过滤日志以仅显示错误 读取 Stackdriver
  • iFrame 中的 Angular2 不安全资源 URL 与 DomSanitationService

    背景 我正在为我们正在研究的过渡策略进行概念验证 该策略将在我们致力于将现有功能转换为 Angular 的同时将 旧 Web 应用程序引入 iFrame Issue 我遇到的问题是尝试在 iFrame 上设置 src 标记 我正在尝试使用
  • REST 何时/如何取代 SOAP [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我目前正在写关于 IT 技术等的论文