Java REST框架一览(转)

目前宣称支持REST的Java框架包括如下这些: 
Restlet(http://www.restlet.org/) 
Cetia4(https://cetia4.dev.java.net/) 
Apache Axis2(http://http://ws.apache.org/axis2/) 
sqlREST(http://sqlrest.sourceforge.net/) 
REST-art(http://rest-art.sourceforge.net/) 

如下对这些框架进行了较为全面的分析。 

Restlet,最新版本1.0.1 
特色:彻底抛弃了Servlet API,做为替代,本身实现了一套API。可以支持复杂的REST架构设计。 
缺点: 
1. 虽然也能够运行于Web容器中,可是难以利用Servlet和JSP等资源。由于须要另外学习一套API和概念,学习成本比较高。 
2. 彻底不支持服务器端的HTTP Session,强制彻底基于无状态服务器模型来作开发。对于基于浏览器的应用来讲,开发难度较高。 
3. 自身没有包括与Spring的集成,可使用第三方代码与Spring集成,集成难度较大。 
4. 文档不是很丰富,大多比较简短,不少时候须要本身去读代码,或者到其wiki上去查找。 
5. 没有内建的国际化支持。 
优势: 
1. 有内建的HTTP认证机制,不须要另外开发安全机制。 
2. 灵活性较高,支持更多的REST概念,支持透明的内容协商,适合于开发更增强大的REST组件(不限于服务器端应用)。 
3. 零配置文件,所有配置经过代码来完成。 

相关资源: 
功能列表:http://www.restlet.org/about/features 
简介:http://www.restlet.org/about/introduction 
教程:http://www.restlet.org/documentation/1.0/tutorial 
FAQ:http://www.restlet.org/about/faq 

Cetia4,最新版本1.0 
特色:基于Servlet API开发,能够运行于全部的Web容器中。 
优势: 
1. 能够充分利用Servlet API和JSP等资源,须要额外学习的概念较少,学习成本较低。 
2. 对于传统的Web应用,可使用服务器端HTTP Session;对于Web服务类应用,不使用HTTP Session,基于无状态服务器模型作开发。 
3. 自身包括了对于Web MVC的支持,熟悉Web MVC框架的开发者很容易理解。还内建了参数映射、参数验证等等传统Web MVC框架所支持的功能。 
4. 内建了本身特有的导航对象栈的概念,对于支持传统的Web应用的开发(基于浏览器的导航)很是有帮助。 
5. 提供了JSP标签库,对于传统的基于HTML表单的Web开发很是有帮助。 
6. 支持与SiteMesh相配合,由SiteMesh来支持页面布局的重用。 
7. 内建有与Spring的集成,集成起来很是容易。 
8. 配置文件彻底基于标准的web.xml,不须要额外的配置文件。大量使用默认配置,通常状况下足以知足常见的需求。 
9. 拥有很好的文档。 
10. 有内建的国际化支持。 
缺点: 
1. 没有内建的HTTP认证机制,须要自行开发安全机制。 
2. 对于内容协商的支持比较弱,仅支持HTML和XML格式的表现。须要加以扩展才能支持其余格式的表现。 

相关资源: 
教程:https://cetia4.dev.java.net/files/documents/5545/38989/cetia4_tutorial.pdf 

Axis2,最新版本1.2 
特色:同时支持SOAP和REST风格的Web Service。 
缺点: 
1. 仅仅支持GET与POST方法。 
2. 仅仅是以REST风格暴露出Web服务,数据格式仍然是包含SOAP封装的XML,不能使用更加有效的格式。 
3. 只支持同步的调用方式。 
4. 仅仅提供了以SOAP方式暴露Web服务的最小化的支持,不支持全面的REST架构设计。 

相关资源: 
简介:http://ws.apache.org/axis2/1_2/rest-ws.html 

sqlREST,最新版本0.3.1 
特色: 
1. 为任何能够经过JDBC访问的数据库提供Web服务访问接口,自动将REST风格的HTTP请求转换为相应的数据库SQL语句,并将数据库中的记录编码为XML格式传给客户端。是REST风格的HTTP请求到数据库中的数据的直接映射。 
2. 基于Servlet API开发。 
缺点: 
1. 由于是REST风格的HTTP请求到SQL语句的直接映射,所以强制使用以SQL和关系数据库为中心的数据建模设计方法,不支持面向对象的设计。灵活性很低,难以实现较为复杂的业务逻辑。 
2. 由于资源的定义仅限于数据库的表,难以实现更高层次的抽象,必然会致使很是细粒度的API。应用的性能和可伸缩性都难以保证。 

相关资源: 
教程:http://sqlrest.sourceforge.net/5-minutes-guide.htm 

REST-art,最新版本0.2 
特色:一个旨在替换复杂的SOAP框架的REST框架,用来做为替代SOAP方便地发布Web服务的工具。不是基于Servlet API开发。 
缺点: 
1. 目前尚处于刚刚起步的阶段,功能很是少。 
2. 不是基于Servlet API,带来了额外的学习成本。 

相关资源: 
教程:http://sourceforge.net/docman/index.php?group_id=175132php

 

引用地址:http://www.iteye.com/topic/85928html

相关文章
相关标签/搜索