使用SOAP和REST

Maw*_*wia 5 java rest soap web-services

我已成功使用SOAP服务.

假设有一个Web服务公开了一个返回学生列表的方法.

public Student[] listAllStudents(){
  //some code that return Student array
}
Run Code Online (Sandbox Code Playgroud)

使用SOAP将需要以下步骤:

  1. 获取WSDL位置的URL.
    例如.http://127.0.0.1/web/service/location/soap.php?wsdl
  2. 使用一些可用的技术,如 axistools-maven-plugin 来生成所有存根类.将生成一个名为Student的生成类
  3. 使用适当的存根类/接口来调用服务.

    Student[] students = theStub.list_All_Students();

使用REST服务将是这样的.

  1. 获取获取学生名单的正确网址.
    例如.http://127.0.0.1/web/service/student/list?sort=true
  2. 使用一些URL连接技术(如java.net.HttpURLConnection)来获取通常为JSON格式的结果.
  3. 解析结果.

作为Java程序员,我使用SOAP没有问题,因为有为它设计的框架.此外,我只需要知道一个用于访问Web服务的URL.

使用REST有点令人困惑.我需要知道所有特定的URL以及需要传递的查询字符串.从这个角度来看,使用REST非常麻烦.

我的问题:

  1. 从程序员的角度来看,使用REST是否有用?
  2. 有没有什么好的框架可以让REST变得更容易?

Jop*_*ops 10

1.从程序员的角度来看,使用REST是否有用?

REST绝对有用.与您在SOAP中习惯使用的方式相比,这是一种利用Web服务的不同方式.这是一个快速比较: 在此输入图像描述

最后,他们每个人都在服务导向的世界中服务于自己的目的.SOAP很成熟但很臃肿.REST相对年轻,但更适合HTTP.它具有巨大的潜力,特别是在实施服务合同标准时.当WADL成熟时,它将提升REST的普及和采用.

2.有没有什么好的框架可以让REST变得更容易?

很多.以下是一些已知的REST框架,其中流行的是JAX-RS,Jersey,RESTEasy和Restlet.