- 1、本文档共36页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
REST概述 REST 是一种软件架构模式,是基于HTTP协议的软件架构 REST 中重要的两个概念就是资源定位和资源操作 资源定位 URL 资源操作 HTTP(GET,POST,PUT,DELETE) REST与RPC 对 HTTP协议的使用 REST VS RPC REST 是一种软件架构理念,被移植到Web 服务 在开发Web 服务上,偏于面向资源的服务适用于REST,偏于面向活动的服务适用于SOAP REST 简单易用,效率高,SOAP 成熟度较高,安全性较好 JAX-RS标准是将REST设计风格应用到Web 服务 JAX-RS 主要接口/类介绍 应用(Application) 资源(Resource) 提供者(Provider) 上下文(Context) 环境(Environment) 应用(Application) Java SE:通过基于JAX-WS的javax.xml.ws.Provider在SE环境中发布; Servlet:将JAX-RS应用打包为.war文件作为Web应用发布; 资源(Resource) 在JAX-RS中,一个Resource类代表一个网络资源,对该网络资源的任何请求被Resource类中定义的方法处理 在Java中,一个Resource是一个POJO类,其中的方法至少有一个被@Path或HTTP方法指示器(如@GET,@POST,@PUT,@DELETE,@OPTIONS)标注; 提供者(Provider) JAX-RS运行时通过应用提供的Provider类; Provider是一个被@Provider标注并实现了一个或多个JAX-RS接口的类; Apache CXF 提供实现 上下文(Context) 可通过@Context注入 Java Method(@Context?UriInfo?info) Java Method( @Context?HttpHeader?headers ) Java Method( @Context?Request?request ) 环境(Environment) 哪些容器管理的资源能被JAX-RS的Root资源类和Provider使用取决于其部署的环境; Servlet容器: 基于Servlet的JAX-RS实现支持将JAX-RS应用部署到Servlet容器,并能将Servlet相关信息注入到应用的Resource和Provider类中:ServletConfig,ServletContext,HttpServletRequest,HttpServletResponse; JEE容器: 基于JEE容器的JAX-RS实现应支持能将EJB,Managed Beans等作为Root资源类,Provider和Application子类; HOW TO DO? Jaxb @XmlRootElement 标识数据绑定对象 资源定位 资源操作 @Produces(“MIME-type) @Produces 用于服务方法描述上 用于指定返回值的类型 例如: application/xml、application/json、image/jpeg 等) @Produces(“application/xml”) 返回XML 默认值是*/* CXF 默认返回的是JSON 字符串 发布服务 与 客户端调用 客户端-浏览器访问 客户端-HTTPClient URI路径模板 @Path 的变量可以使用符合正则表达式“[^/]+?” 例如: @Path(users/{username: [a-zA-Z][a-zA-Z_0-9]}) JAX-RS 返回值 JAX-RS 的接口方法返回两类 自定义类型(譬如上面的Merchant.java 类型) javax.ws.rs.core.Response 接口 自定义类型 @Produces 用于指示一个资源类(或服务接口)或者MessageBodyWriter 可以产出的MIME 类型 @Consumes 用于指示资源类(或服务接口)或者MessageBodyReader 可以接受的MIME 类型 例如: @Produces(“application/xml”) @Produces(application/json) JAX-RS 返回自定义类型 ch02_2 javax.ws.rs.core.Response 接口 Response 接口返回Http 的响应代码、响应头或者是一种实体 javax.ws.rs.ext.MessageBodyWriter 类负责marshall 响应实体,响应实体被直接输出(自定义类型)或者是作为Response 的
文档评论(0)