SOA 实施的首选 - SOAP 还是 REST?
Preferred choice for SOA implementation - SOAP or REST?
考虑到 REST 当前的成熟度 frameworks/APIs,对于新的 SOA 项目,哪个应该是更好的选择 - soap 还是 rest?
PS - 对不起,我是一个菜鸟,如果问错了问题,请告诉我!
这有点悬而未决。现在我总体上有点偏向于 REST,但是 REST 和 SOAP 是两种不同的动物。 REST 更像是一种架构风格,而 SOAP 是一种描述的协议。话虽如此,我肯定写过很多SOAP接口。
我想指出的一件事是,使用 REST,您不受数据表示的限制,因此它可以在 XML、JSON、YAML 等中。作为结果您的数据可以更轻量级。但是,对于 SOAP,您必须使用 XML。不过,绝对要考虑的一件事是如何使用此服务。
一般来说,如果您的服务将由移动设备使用(Android,iOS,Windows Phone),周围有很多框架REST,所以利用那些现有的框架是明智的。如果您有连接到此的较老的大公司,他们可能会有现有的 SOAP 实现,因此他们会更愿意访问 SOAP 服务。
不过,我要说的是,同时提供两者并不是那么困难。如果您在 /api/v1/customers
有服务 << 这可能是您的休息 URL 并且对于 SOAP 协议使用 /api/v1/soap/customers/*
。只要你的业务逻辑,如果有封装成不同的函数,那么SOAP和REST实现都可以调用它。
我希望这对您有所帮助,但由于有许多技术问题,请不要试图强迫您的用例适合该技术。您的技术选择应该源自用例。
SOAP 是基于 xml 的协议,REST 是 ROA 的架构风格(R esource Ooriented Architecture),不是规范或标准。
Web services vs. SOA and pretty URL vs. REST
拥有 Web 服务并不意味着您拥有 SOA 架构
这可能是我经常听到的关于 SOA 架构的最大误解之一。我看到许多开发人员认为,如果他们的架构中有一两个 Web 服务,他们就说他们的架构是 SOA 架构。我认为这是由于两个原因:1)“Web 服务”和“面向服务”在命名上的相似性使人们认为它们是同一事物; 2) 由于 Web 服务是实现 SOA 架构的最常见方式,这促使人们认为当他们创建了一个 Web 服务时,他们的架构就是 SOA 架构。
SOA 架构的特点是独立服务的组合,这些服务封装业务功能并将其公开为服务,可以是 Web 服务、windows 服务或任何其他形式的公开。 Web 的普及和 Web 开发技术的进步使得 Web 服务的创建变得更加容易,这使得 Web 服务成为实现 SOA 架构的一种选择,但是,SOA 架构中的服务定义并没有将 Web 服务放在关于 SOA 架构实施的任何特殊立场。
拥有漂亮的 URL 并不意味着您拥有 REST 架构风格
REST 架构风格是最近另一个流行的话题,因此也容易受到很多误解。 REST 为 Web 服务的实现带来了简单性,并受到 Web 开发社区的广泛欢迎。它与我们从 www 时代开始就熟悉的 HTTP 协议配合得很好。
REST 架构风格的一个特点是资源处于架构的中心,它们以 URL 的形式精美地表示。 REST 给我们带来了漂亮的 URL,因此人们在 URL 和 REST 架构之间建立了联系。 Leonard Richardson 开发了一个成熟度模型,可以告诉您 API 或 RESTful 服务的级别 RESTful.
考虑到 REST 当前的成熟度 frameworks/APIs,对于新的 SOA 项目,哪个应该是更好的选择 - soap 还是 rest?
PS - 对不起,我是一个菜鸟,如果问错了问题,请告诉我!
这有点悬而未决。现在我总体上有点偏向于 REST,但是 REST 和 SOAP 是两种不同的动物。 REST 更像是一种架构风格,而 SOAP 是一种描述的协议。话虽如此,我肯定写过很多SOAP接口。
我想指出的一件事是,使用 REST,您不受数据表示的限制,因此它可以在 XML、JSON、YAML 等中。作为结果您的数据可以更轻量级。但是,对于 SOAP,您必须使用 XML。不过,绝对要考虑的一件事是如何使用此服务。
一般来说,如果您的服务将由移动设备使用(Android,iOS,Windows Phone),周围有很多框架REST,所以利用那些现有的框架是明智的。如果您有连接到此的较老的大公司,他们可能会有现有的 SOAP 实现,因此他们会更愿意访问 SOAP 服务。
不过,我要说的是,同时提供两者并不是那么困难。如果您在 /api/v1/customers
有服务 << 这可能是您的休息 URL 并且对于 SOAP 协议使用 /api/v1/soap/customers/*
。只要你的业务逻辑,如果有封装成不同的函数,那么SOAP和REST实现都可以调用它。
我希望这对您有所帮助,但由于有许多技术问题,请不要试图强迫您的用例适合该技术。您的技术选择应该源自用例。
SOAP 是基于 xml 的协议,REST 是 ROA 的架构风格(R esource Ooriented Architecture),不是规范或标准。
Web services vs. SOA and pretty URL vs. REST
拥有 Web 服务并不意味着您拥有 SOA 架构
这可能是我经常听到的关于 SOA 架构的最大误解之一。我看到许多开发人员认为,如果他们的架构中有一两个 Web 服务,他们就说他们的架构是 SOA 架构。我认为这是由于两个原因:1)“Web 服务”和“面向服务”在命名上的相似性使人们认为它们是同一事物; 2) 由于 Web 服务是实现 SOA 架构的最常见方式,这促使人们认为当他们创建了一个 Web 服务时,他们的架构就是 SOA 架构。
SOA 架构的特点是独立服务的组合,这些服务封装业务功能并将其公开为服务,可以是 Web 服务、windows 服务或任何其他形式的公开。 Web 的普及和 Web 开发技术的进步使得 Web 服务的创建变得更加容易,这使得 Web 服务成为实现 SOA 架构的一种选择,但是,SOA 架构中的服务定义并没有将 Web 服务放在关于 SOA 架构实施的任何特殊立场。拥有漂亮的 URL 并不意味着您拥有 REST 架构风格
REST 架构风格是最近另一个流行的话题,因此也容易受到很多误解。 REST 为 Web 服务的实现带来了简单性,并受到 Web 开发社区的广泛欢迎。它与我们从 www 时代开始就熟悉的 HTTP 协议配合得很好。
REST 架构风格的一个特点是资源处于架构的中心,它们以 URL 的形式精美地表示。 REST 给我们带来了漂亮的 URL,因此人们在 URL 和 REST 架构之间建立了联系。 Leonard Richardson 开发了一个成熟度模型,可以告诉您 API 或 RESTful 服务的级别 RESTful.