首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

REST Service 的最佳实践,第 3 部分 把 SOAP 服务转化为 REST 服务-3

REST Service 的最佳实践,第 3 部分 把 SOAP 服务转化为 REST 服务-3

分析 SOAP 的 Web 服务和 REST 服务的关系现在你被认为已经清楚了基于 SOAP 的 Web 服务和 REST 服务的描述,以及已经会调用他们。接下来,我们来看一下这两种服务的逻辑关系。
  • 面向方法和面向资源。从清单 1 可以看出,SOAP 服务是按照面向方法的方法论来设计的,需要服务提供者清楚的给出每个方法的名称、输入参数、输出详细描述、绑定等等,这些又再次封装在消息 message 中。而从清单 4 中我们可以看出,REST 服务是面向资源的,服务提供者只需要告诉用于定位到服务的 URL template 以及要实例化这个 template 所有的参数描述。为了使这个服务可以工作,所以这里我们用了 ,但是更好的 URL 格式应该是 ,也许你已经发现了,两个 URL 只是 GetQuote 和 Quote 的差别。奥妙就在这。GetQuote 看起来像一个方法名称,而 Quote 是一个名词,是一个资源。知道了这个差别,可以把 SOAP 服务的输出作为一种资源,对应提供 REST 服务。
  • 参数对应。在 SOAP 描述文件中我们看到调用一个 SOAP Action 所需要的输入的详细描述。这些参数是系统提供服务所要求的必须的输入。而在 REST 服务中,用户看到的就是一个 URL,所以,我们可以把 SOAP Action 的输入用 query string 的形式放到 REST 服务的 URL template 中。之所以叫 template,是因为不同的输入会对应不同的 URL 示例,也就是说对应到不同的资源示例。
知道了两种服务间的逻辑关系,接下来,我们开始用程序把 SOAP 服务转化成 REST 服务,当然,如果系统需要,你也可以把 REST 服务转成 SOAP 服务。
SOAP Web 服务和 REST 服务的转换很多种方式,可以把 SOAP 服务转化成 REST 服务。最直接的方式,程序员可以自己写程序,实现一个 proxy,提供 REST 端点,然后通过 proxy 把 REST 请求转发到 SOAP 端点,然后再实现调用结果的处理。这里我们主要介绍用 IBM 的一些产品来实现转化的方法。IBM WebSphere sMash 和 IBM Mashuphub 都可以实现这种转化。这里着重介绍用 IBM WebSphere sMash 平台实现的方法。使用 IBM Mashuphub 的实现方式请参考 。
开始之前
  • 了解 WebSphere sMash
WebSphere sMash 即以前的 Project Zero, 它为快速简便地开发交互式 Web 应用程序提供了开发环境。这个项目的目的是为 Web 开发提供一个完整的基础设施,让应用程序开发人员可以将注意力集中在业务逻辑上。花一些时间浏览和熟悉  。可以加入 Project Zero 社区、为这个项目做贡献,或参与论坛,在各个开发阶段对项目进行评价。本文只要求您的计算机上安装了合适的 Java™ Development Kit (JDK)。
  • 创建 WebSphere sMash 开发环境
遵循下面的步骤,创建 WebSphere sMash 开发环境。
Step 1:从 WebSphere sMash 网站下载工具包 。
Step 2: 解压 zero.zip 到任意文件夹。如图 1 所示。
图 1. 解压 zero.zip 到任意文件夹Step3: 设置环境变量 ZERO_HOME 和 Path。如图 2 所示。
图 2. 设置环境变量图 2. 设置环境变量Step4: 在命令行运行 zero resolve 命令。如图 3 所示。
图 3. 命令行运行 zero resolve 命令
返回列表