`
yidongkaifa
  • 浏览: 4082464 次
文章分类
社区版块
存档分类
最新评论

Java REST框架介绍

 
阅读更多
REST(Representational State Transfer)是一种轻量级的Web Service架构风格,其实现和操作明显比SOAP和XML-RPC更为简洁,可以完全通过HTTP协议实现,还可以利用缓存Cache来提高响应速度,性能、效率和易用性上都优于SOAP协议。
  REST架构遵循了CRUD原则,CRUD原则对于资源只需要四种行为:Create(创建)、Read(读取)、Update(更新)和Delete(删除)就可以完成对其操作和处理。这四个操作是一种原子操作,即一种无法再分的操作,通过它们可以构造复杂的操作过程,正如数学上四则运算是数字的最基本的运算一样。

  REST架构让人们真正理解我们的网络协议HTTP本来面貌,对资源的操作包括获取、创建、修改和删除资源的操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法,因此REST把HTTP对一个URL资源的操作限制在GET、POST、PUT和DELETE这四个之内。这种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。

关于REST可以参考:
http://zh.wikipedia.org/wiki/REST

http://www.infoq.com/cn/articles/rest-introduction

http://www.infoq.com/cn/articles/rest-architecure

http://www..ibm.com/developerworks/cn/web/wa-ajaxarch/



目前宣称支持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,带来了额外的学习成本。
分享到:
评论

相关推荐

    restx:RESTX,轻量级的Java REST框架

    RESTX-轻量级的Java REST框架 RESTX是一个完整的轻量级破坏堆栈,其中包括类似Swagger的ui并将REST规范测试视为文档。 它与Play等现代框架具有相似之处。 像热编译和非常富有成效的经验,但专注于REST和纯Java。 它...

    jxrest:简单、轻量级的 Java REST 框架

    概述jxrest 是一个简单、轻量级的框架,可实现基于 JSON 的 REST API 的真正快速开发。 让我们看看编写 REST API 有多么简单: import ...

    高效的Java异常处理框架.dot

    高效的Java异常处理框架

    Jersey Java规范下REST风格Web Service开发框架

    Jersey Java规范下REST风格Web Service开发框架

    JAVA 三种框架风格的介绍

    JAVA 三种框架风格的介绍:request/response , message passing, rest

    restlet-framework-java:领先的Java REST API框架

    领先的Java REST API框架 得益于Restlet Framework强大的路由和过滤功能,统一的客户端和服务器Java API,开发人员可以构建安全且可扩展的RESTful Web API。 它适用于所有主要平台(Java SE / EE,Google App ...

    rest风格webservice框架

    Restlet项目为“建立REST概念与Java类之间的映射”提供了一个轻量级而全面的框架。它可用于实现任何种类的REST式系统,而不仅仅是REST式Web服务。 Restlet项目受到Servlet API、JSP(Java Server Pages)、...

    轻量级 Java Web 框架

    服务端可发布 REST 服务(使用 REST 插件) 客户端通过 AJAX 获取服务端数据并进行界面渲染 提高应用程序的开发效率 面向基于 Web 的中小规模的应用程序 新手能在较短时间内入门 核心具有良好的定制性且插件易于扩展

    基于Java的面向REST API高性能认证鉴权框架设计源码

    本项目是一个基于Java的面向REST API的高性能认证鉴权框架设计源码,共包含626个文件,其中包括227个Java文件、125个Markdown文件等。系统采用了Java、CSS、JavaScript、HTML和Kotlin等技术,为用户提供了一个功能...

    Java微服务框架Microserver.zip

    Microserver 是一个零配置、基于标准的身经百战的库,用来运行 Java REST 微服务,通过 Java 标准 main 类执行。从 2014 年开始就一直在 AOL 生产环境中使用。框架结构:main 类:public class AppRunnerTest { ...

    java-rest-api

    Java Rest API 描述 这是一个简单的应用程序,允许用户输入2个数字和一...Java Spring框架 阿帕奇Maven 胸腺 屏幕截图 在上的预期输出 在上的预期输出 未来发展方向 将数据存储在SQL或NoSQL数据库中,以便持久保存。

    mrsf一个模块化的Rest服务框架

    一个模块化的Rest服务框架。使用restlet框架,对其进行再封装,提供一个模块化开发的环境

    REST API.md

    REST API的开发框架介绍:JSR-311,REST Web Services框架 JAX-RS,java接口;### REST Web Application多层框架 REST 应用场景,适合和不适合什么 基于HTTP的REST, 介绍资源uri,传输格式,对资源的操作(GET、...

    light-java是一个快速轻量级和更高效的Java微服务框架

    light-java是内置了undertow http服务器的REST微服务轻量Java框架,它比Spring Boot内嵌Tomcat这样流行的微服务平台要快44倍,与Go语言fast-http性能接近。

    java语言rest-assured框架进行接口测试实战

    本套课程,帮助你快速掌握:接口测试及相关自动化技巧接口测试协议、拦截请求和响应、断言机制实战rest-assured高级进阶、Jenkins持续集成、接口管理教你如何从零开始搞定接口测试--实战教学

    Rest.li是一个RESTJSON框架

    Rest.li 是一个REST JSON 框架用于构建。健壮的,可伸缩的RESTful架构使用类型安全绑定和异步非阻塞IO。

    基于Spring Boot的REST API项目框架.zip

    基于Spring Boot的REST API项目框架.zip

    Java-micro一个用于构建微服务的轻量级Java框架

    Java-micro:一个用于构建微服务的轻量级Java框架

    agrest:服务器端Java REST框架,可轻松访问数据存储

    Agrest(以前称为“ LinkRest”)是一个灵活的模型驱动的REST数据服务框架。 在客户端上浏览数据图时,它有助于优化REST交互并避免对服务器的过多请求。 访问以获取更多信息。 该分支适用于Agrest 4.x开发线。 它...

Global site tag (gtag.js) - Google Analytics