`
jeast
  • 浏览: 71813 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

RESTFUL 框架

阅读更多

JAX-RS 简介:

 

 

    JAX-RS是一个基于annotation的API,用来实现RESTful web services,使用Java,基于HTTP。本质上,类和函数通过annotation信息作为一个资源暴露给运行时——而这种方式通过servlet编程模式很难实现。一个运行时能够处理HTTP协议和Java类之间的JAX-RS信息,使用URIs,请求和接受内容类型,和HTTP函数。Sun附加提供的参考实现:Jersey,其他实现也可以使用了(不同的平台有不同竞争者):比如 Restlet 框架,JBoss RESTeasy project,和 Apache CXF web services 解决方案。

 

 

JAX-RS 注解:

 

@Path

 用来映射 URI,为资源类以及资源类中包含的方法提供访问路径。

 

@GET

表示处理 HTTP GET 请求的资源类方法。当 Web Service 获得客户端发出的对与某个网络资源 的 HTTP GET 操作时,服务器会调用被 @GET 注解后的方法来处理 GET 请求。当然,被调用的资源类方 法首先得满足 URI。

 

@POST

表示处理 HTTP POST 请求的资源类方法。和 @GET 相类似,只不过对应的是 HTTP POST 操作 。

 

@PUT

 表示处理 HTTP PUT 请求的资源类方法。该 Annotation 通常用于更新网络对象的方法。和 @GET,@POST 处理流程相类似。

 

@DELETE

表示处理 HTTP DELETE 请求的资源类方法。使用该 Annotation 后的方法通常是删去每个 网络对象的实例。处理流程和 @GET,@POST,@PUT 相类似。

 

@HEAD

 表示处理 HTTP HEAD 请求的资源类方法。通常情况下,根据 JAX-RS 规范的设定,在没有实 现 @HEAD 的资源类方法时,RESTlet JAX-RS extension 会自动处理 HTTP HEAD 请求,@GET 注解的资源 类方法会自动被调用。和处理普通的 HTTP GET 请求的区别是没有实例被返回。@HEAD 注解的资源类方法 通常用来获取 Web Services 能够接受的数据格式。

 

@Produces

用来表示资源类方法能够返回的 MIME 的媒体类型。

 

@Consumes

 用来表示资源类方法能够处理的 MIME 的媒体类型。

 

 

 

REST 开源框架:

 

    1:Jersey: 是sun公司对JAX-RS(JSR311)的一个参考实现,不过现在在逐渐的摆脱参考实现的阴影,逐渐渗透到企业应用,和sun的glassfish和netbeans结合使用可以很方便的构建restful web service。

 

    2:Restlet: 出现的较早,在JAX-RS之前就有了,支持的框架较多,但是使用起来不够简单。

 

    3:CXF: 是Celtix 和 XFire合并后的项目,支持SOAP,WSDL,JSR-WS,REST,配置较为复杂,侵入性太强,单纯构建restful web service显得较重。

 

    4:Resteasy: 是jboss下面一个对JAX-RS(JSR311)的一个实现,使用起来简单方便,支持spring,oauth等。

 

    5:SerfJSerfJ 是一个最简单的框架用来开发Java的REST的Web应用。可帮助你开发优雅的MVC架构的应用,使用惯例重于配置的思路,无需配置文件和注解。

 

    6:Cetia4Cetia4是一个对REST提供完善支持的Web开发框架。

 

 

 

         Cetia4特点:

 

                       基于Servlet API开发,可以运行于所有的Web容器中。 

 

 

        Cetia4优点: 

 

                     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. 有内建的国际化支持。 

 

 

 

          Cetia4缺点: 
 
                     1. 没有内建的HTTP认证机制,需要自行开发安全机制。

 
                     2. 对于内容协商的支持比较弱,仅支持HTML和XML格式的表现。需要加以扩展才能支持其

                        他格式的表现。


 

分享到:
评论

相关推荐

    cpp-RestbedC11异步RESTful框架

    Restbed 是一个基于 C++11 的开源框架,专门设计用于构建异步 RESTful 服务。这个框架由 Corvusoft 公司开发,旨在提供轻量级、高性能且易于使用的解决方案,帮助开发者快速实现 REST API。在 C++ 开发领域,Restbed...

    go 实现Restful框架

    go 实现Restful风格,这种风格设计让后端和前端更加友好交流,前端一看请求就知道这个api是做什么的,根本就不需要看文档,现在很多企业都在使用Restful风格设计。从Web服务客户端接收到请求后,Resource Request ...

    PHP的RESTful框架Tonic.zip

    Tonic 是一个开源的 PHP RESTful Web 应用开发框架。 标签:Tonic Web框架

    基于restful框架jersey

    ### 基于RESTful框架Jersey的知识点详解 #### 一、Jersey RESTful框架简介 Jersey RESTful框架是一款开源的RESTful框架,它实现了JAX-RS(JSR 311 & JSR 339)规范。JAX-RS是一种Java API,用于开发RESTful web...

    Django Restful 框架设计规范 - 英文原文

    描述:“Django Restful 框架设计规范 - 英文原文,作为Restful框架设计的规范参考”,进一步明确了文档的作用——作为开发者设计和实现Restful风格API时的参考标准。这对于那些希望构建高质量、易于维护和扩展的API...

    SlwRest-1.0(Super Lightweight Rest)超轻量RESTful框架

    **SlwRest-1.0:超级轻量级RESTful框架** 在当今的软件开发领域,RESTful架构已经成为构建Web服务的主流选择,因为它提供了高效、灵活且易于理解和实现的接口。然而,随着各种REST框架的出现,它们的体积和复杂性也...

    python开发,基于gunicorn+gevent+restful框架,标准的高并发flask项目,可用于高并发应用开发模板

    python开发,基于gunicorn+gevent+restful框架,标准的高并发flask项目,可用于高并发应用开发模板 flask高并发标准项目框架 启动服务: gunicorn -c gun.py manage:app 新增接口方式: 1.app/_apis/firstApi....

    Python-Flask的可浏览WebAPI一个强大的FlaskRESTful框架

    **Python-Flask的可浏览WebAPI:一个强大的Flask RESTful框架** Flask是一个轻量级的Python Web开发框架,它以其灵活性和简洁性深受开发者喜爱。在Flask的基础上,为了实现更高效的RESTful API设计,我们可以使用...

    最好的8个Java RESTful框架

    Java RESTful框架是用于构建基于Representational State Transfer (REST)原则的Web服务的关键工具。REST是一种轻量级的架构风格,常用于构建可伸缩、高性能的Web应用。以下是对标题和描述中提到的8个最佳Java ...

    基于light-4j构建的RESTful框架设计源码,支持Swagger 2.0和OpenAPI 3.0

    本项目为基于light-4j构建的RESTful框架设计源码,集成了Swagger 2.0和OpenAPI 3.0支持,包含91个文件,涵盖42个Java源文件、15个JSON配置文件、13个XML配置文件、5个YAML配置文件、4个证书和密钥文件,适用于构建...

    Lode.WebApi:ASP.Net Core的RESTful框架

    洛德ASP.Net Core的RESTful框架。特征支持ASP.Net Core 快速上手(最小架构) 安装nuget包创建控制器完毕插件系统(插件架构) 一专一插件通过json配置如何使用安装Lode的nuget软件包。 PM> Install-Package Lode...

    SSM+restful框架搭建成功

    截止今天已经研究了三天,从maven到springMVC,到rest风格的实现,再到mybatis,最后整合,最终测试成功,框架成功搭建出来,可喜可贺! 我现在的感觉是,sprinMVC负责页面跳转以及rest风格的实现,mybatis负责...

    浅谈go-restful框架的使用和实现

    go-restful框架是用Google Go语言编写的REST风格Web服务开发包,它遵循REST(Representational State Transfer)原则,即表现层状态转换的网络架构风格。REST架构风格在近年来被广泛应用于网络中client-server...

    Node.js-基于koa2的restful后端框架

    在"Node.js-基于koa2的restful后端框架"项目中,我们关注的是如何利用Koa2构建RESTful API服务。REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于HTTP协议,强调资源的无状态...

    Python restful框架接口开发实现

    Python RESTful框架接口开发是构建Web服务的一种常见方式,它基于HTTP协议,使用简洁明了的URI(统一资源标识符)来表示资源,并通过HTTP动词(GET, POST, PUT, DELETE)来操作这些资源。RESTful接口设计的核心原则...

    Node.js的RESTful框架restmvc.zip

    restmvc 是一款简单,轻量级的框架,帮助用户使用 Node.js ,Express, Mongoose 和 MongoDB 编写 Restful web 服务。 标签:restmvc

    超轻量RESTful框架—SlwRest(Super Lightweight)客户端及服务端Demo代码

    RequestMethod支持GET, POST, DELETE, PUT 参数获取支持 @FormParam, @PathParam, @QueryParam, @HeaderParam等 内容支持常用的JSON, XML, TEXT 能够方便地实现Java复杂对象, List, Map对象与JSON/XML的互转换 ...

    Go-一个框架用于在Go中构建RESTfulAPI

    "Go-一个框架用于在Go中构建RESTful API",这表明我们关注的是如何利用Go语言来创建符合REST(Representational State Transfer)原则的API。REST是一种软件架构风格,常用于设计网络应用程序,尤其是Web服务。它...

    restful-framework:RESTful框架

    RESTful框架 创建一系列帮助库/函数,以使用节点HTTP模块创建REST API。 这是一个开放式的作业,欢迎您随意学习。 最终项目应该能够使用require函数带入Javascript文件中,并且还应该能够在npm上发布。 它应该是...

    RESTful服务快速开发框架Rabbit.js.zip

    应用的restful的route完全根据目录结构自动生成,无需自己声明和指定。 controller和view之间拥有自动映射,你在controller里无需指定渲染的view路径。 分层之间不采用跳路径方式应用,而是根据名字寻找,无需...

Global site tag (gtag.js) - Google Analytics