• 流行的Java rest框架

    普通类
    • 支持
    • 批判
    • 提问
    • 解释
    • 补充
    • 删除
    • 流行的java rest框架

    目前宣称支持REST的Java框架包括以下这些:
    Jersey(https://jersey.dev.java.net/
    Restlet(http://www.restlet.org/
    Cetia4(https://cetia4.dev.java.net/
    Apache Axis2(http://ws.apache.org/axis2/
    sqlREST(http://sqlrest.sourceforge.net/
    REST-art(http://rest-art.sourceforge.net/
    以下对这些框架进行了较为全面的分析。

    • Jersey

    优点:

    1. 特点:完全执照RESTful风格来组织web资源还是不太容易,虽然这个风格看上去很美;
    2. 用Jersey来实现Web Service真的是一个很好的途径,它足够轻量、足够简单、也足够高效。
    3. Jersey 可以使用 Jersey 集成库与其他框架或实用工具库集成。目前,Jersey 可以集成 Spring、Guice,还支持 ATOM 表示形式与 apache-adbera 的集成
    4. 支持服务器端的HTTP Session,支持Servlet API
    5. 文档不是很丰富,大多比较简短,很多时候需要自己去读代码,或者到其wiki上去查找。
    6. 支持XML、JSON、ATOM
    7. 零配置文件,全部配置通过代码来完成

    缺点:

    没有内建的HTTP认证机制,不需要另外开发安全机制。

    • Restlet

    特点:

    完全抛弃了Servlet API,作为替代,自己实现了一套API。能够支持复杂的REST架构设计。

    优点:

    1. 有内建的HTTP认证机制,不需要另外开发安全机制。
    2. 灵活性较高,支持更多的REST概念,支持透明的内容协商,适合于开发更加强大的REST组件(不限于服务器端应用)。
    3. 零配置文件,全部配置通过代码来完成。

    缺点:

    1. 虽然也可以运行于Web容器中,但是难以利用Servlet和JSP等资源。因为需要另外学习一套API和概念,学习成本比较高。
    2. 完全不支持服务器端的HTTP Session,强制完全基于无状态服务器模型来做开发。对于基于浏览器的应用来说,开发难度较高。
    3. 自身没有包括与Spring的集成,可以使用第三方代码与Spring集成,集成难度较大。
    4. 文档不是很丰富,大多比较简短,很多时候需要自己去读代码,或者到其wiki上去查找。
    5. 没有内建的国际化支持。

    相关资源:
    功能列表: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

    特点:

    基于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格式的表现。需要加以扩展才能支持其他格式的表现。

    • Axis2

    特点:

    同时支持SOAP和REST风格的Web Service。

    缺点:

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

    • sqlREST

    特点:

    1. 为任何可以通过JDBC访问的数据库提供Web服务访问接口,自动将REST风格的HTTP请求转换为相应的数据库SQL语句,并将数据库中的记录编码为 XML格式传给客户端。是REST风格的HTTP请求到数据库中的数据的直接映射。
    2. 基于Servlet API开发。

    缺点: 

    1. 因为是REST风格的HTTP请求到SQL语句的直接映射,因此强制使用以SQL和关系数据库为中心的数据建模设计方法,不支持面向对象的设计。灵活性很 低,难以实现较为复杂的业务逻辑。
    2. 因为资源的定义仅限于数据库的表,难以实现更高层次的抽象,必然会导致非常细粒度的API。应用的性能和可伸缩性都难以保证。 

    • REST-art

    特点:

    一个旨在替换复杂的SOAP框架的REST框架,用来作为替代SOAP方便地发布Web服务的工具。不是基于Servlet API开发。

    缺点:

    1. 目前尚处于刚刚起步的阶段,功能非常少。
    2. 不是基于Servlet API,带来了额外的学习成本。

    • 标签:
    • rest
    • Java rest
    • web
    • 流行
    • 集成
    • http
    • 开发
    • api
    • 2.
    • 框架
    • 1.
    • 支持
  • 加入的知识群:
    学习元评论 (0条)

    评论为空
    聪明如你,不妨在这 发表你的看法与心得 ~



    登录之后可以发表学习元评论
      
暂无内容~~
顶部