书签 分享 收藏 举报 版权申诉 / 33
上传文档赚钱

类型REST基础及实例开发课件.pptx

  • 上传人(卖家):三亚风情
  • 文档编号:2971194
  • 上传时间:2022-06-17
  • 格式:PPTX
  • 页数:33
  • 大小:489.83KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《REST基础及实例开发课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    REST 基础 实例 开发 课件
    资源描述:

    1、REST基础及实例开发REST基础及实例开发黄晓娜2011-11-22REST基础及实例开发REST基础uREST概念uREST设计原则u资源的识别 Restful Web服务的java框架实例开发(转账业务)u环境准备u 服务端开发u服务部署u 客户端访问u 补充(动态创建URI及REST常用注释) 理解出错处 REST基础及实例开发 REST (Representation State Transfer:表述性状态转移) 描述了一个架构样式的网络系统,比如 web 应用程序。 REST从资源的角度来描述整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表征。获得这

    2、些特征致使这些应用程序转变了其状态。随着不断获取资源的表征,客户端应用不断地在转变这其状态,也即所谓的表述状态转移。 REST是设计风格。它通常基于使用HTTP,URI,和XML以及HTML这些现有的协议和标准。 REST指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful。注意:REST中的资源指的不是数据,而是数据和表现形式的组合,比如“访问次数”和“下载次数”在数据上可能有重叠或者完全相同,而由于他们的表现形式不同,所以被归为不同的资源REST基础及实例开发REST基础uREST概念uREST设计原则u资源的识别 Restful Web服务的java框架

    3、实例开发(转账业务)u环境准备u 服务端开发u服务部署u 客户端访问u 补充(动态创建URI及REST常用注释)理解出错处 REST基础及实例开发 网络上的所有事物都被抽象为资源-应用程序对象、数据库记录、算法等。 每个资源对应一个唯一的资源标识符(URI)。 通过通用的连接器接口(GET,PUT,POST,DELETE)对资源进行操作。 对资源的各种操作不会改变资源标识符。 所有操作都是无状态的。每个HTTP请求都是孤立的,每个请求都必须包含自己的参数来完成操作。如果服务器在请求之间的任何时间点重启,客户端不会得到通知。此外,无状态请求可以由任何可用服务器回答,这十分适合云计算之类的环境。客

    4、户端可以缓存数据以改进性能。 分层系统:组件无法了解它与之交互的中间层以外的组件。通过将系统知识限制在单个层,可以限制整个系统的复杂性,促进了底层的独立性。REST 设计原则包括客户-服务器、无状态、缓存、统一接口、分层系统等。REST 原则的无状态指服务器端不保存客户应用状态,连接请求响应断开,客户的上一次请求与下一个请求没有关系。服务器端响应客户请求返回资源的表述及相关链接,该表述的本身就是客户的当前状态,客户按照表述中提供的链接选择下一个表述,迁移到下一个状态。也就是服务器通过表述为状态迁移提供指导,而状态的迁移权掌控在用户手里,客户根据自己的需要选择链接,由当前状态迁移到下一个状态。R

    5、EST基础及实例开发 HTTP请求方法在RESTful web中的应用资源资源GETPUTPOSTDELETE一组资源的URI,比如http:/ URI,以及该资源组中每个资源的详细信息(后者可选)可缓存,幂等使用给定的一组资源替换替换当前整组资源。在本组资源中创建创建/追加追加一个新的资源。 该操作往往返回新资源的URI。不缓存,不幂等删除删除 整组资源。单个资源的URI,比如http:/ 指定的资源的详细信息,格式可以自选一个合适的网络媒体类型(比如:XML、JSON等)替换替换/创建创建 指定的资源。并将其追加到相应的资源组中。只有在客户端能够决定资源的URI时才能使用把指定的资源当做一

    6、个资源组,并在其下创建创建/追加追加一个新的元素,使其隶属于当前资源。删除删除 指定的元素。REST基础及实例开发REST基础uREST概念uREST设计原则u资源的识别 Restful Web服务的java框架实例开发(转账业务)u环境准备u 服务端开发u服务部署u 客户端访问u 补充(动态创建URI及REST常用注释)理解出错处 REST基础及实例开发 分析用例,找到可以“创建”、“读取”、“更新”或“删除”动作来操作的领域名词,每个领域名词都可标识为资源。使用POST,GET,DELETE,PUT对其进行操作。 某些情况下,例如:生成随机数;为客户端提供一个方法,在一个请求中,获取最小属

    7、性集的用户档案;列出最近10张用户上传的照片;将钱从一个银行账户转到另一个银行账户(转账)等。可以识别出名词但是如果将这些名词设别为资源,会发现相应的动作没有办法映射到HTTP方法上。这是需要额外的资源来处理这些用例。REST基础及实例开发REST基础uREST概念uREST设计原则u资源的识别 Restful Web服务的java框架实例开发(转账业务)u环境准备u 服务端开发u服务部署u 客户端访问u 补充(动态创建URI及REST常用注释)理解出错处 REST基础及实例开发 Restlet:由erome Louvel 和 Dave Pawson 开发,它实现针对各种 RESTful 系统

    8、的资源、表示、连接器和媒体类型之类的概念,包括 Web 服务。在 Restlet 框架中,客户端和服务器都是组件。组件通过连接器互相通信。 JSR-311是 Sun Microsystems 的规范,可以为开发 RESTful Web 服务定义一组 Java API。Jersey是对 JSR-311 的参考实现。 uJSR-311 提供一组注释,相关类和接口都可以用来将 Java 对象作为 Web 资源展示。该规范假定 HTTP 是底层网络协议。它使用注释提供 URI 和相应资源类之间的清晰映射,以及 HTTP 方法与 Java 对象方法之间的映射。API 支持广泛的 HTTP 实体内容类型,

    9、包括 HTML、XML、JSON、GIF、JPG 等。它还将提供所需的插件功能,以允许使用标准方法通过应用程序添加其他类型。 REST基础及实例开发REST基础uREST概念uREST设计原则u资源的识别 Restful Web服务的java框架实例开发(转账业务)u环境准备u 服务端开发u服务部署u 客户端访问u 补充(动态创建URI)理解出错处 REST基础及实例开发 安装JDK,Tomcat并配置变量。 安装Eclipse或MyEclipse 在Jersey官网上下载所需的jar包 Jersey框架所依赖的包客户端解析JSON所需的包REST基础及实例开发REST基础uREST概念uRE

    10、ST设计原则u资源的识别 Restful Web服务的java框架实例开发(转账业务)u环境准备u 服务端开发u服务部署u 客户端访问u 补充(动态创建URI及REST常用注释)理解出错处 REST基础及实例开发 在Myeclipse开发环境中创建一个Java Web工程。添加jar包到web工程的类路径 u 直接添加,把jar包copy到WebRoot/WEB-INF/libu 在工程的根目录下创建lib文件夹,copy jar包到lib, 配置Build-path REST基础及实例开发 REST基础及实例开发 OKOKREST基础及实例开发转账业务应用场景:当用户输入贷款账户(LoanA

    11、ccountid),借款账户(Borrowerid)和借款金额( LoanAmounts )后,点击转账,客户端调用服务端的转账资源,修改CustomerAccount表,使贷款账户余额减少LoanAmounts,借款账户月增加LoanAmounts。 Web工程结构 AccountService代码 CustomerAccount代码Javabean文件,其与数据库表结构对应,用于封装数据对象,以便在服务端和数据端传送数据REST基础及实例开发 修改配置文件web.xmlcom.sun.jersey.spi.container.servlet.ServletContainercom.sun.

    12、jersey.config.property.packagesaccount.service1/accountres/* 资源文件所在的包名RestfulContainerRestfulContainer访问资源基路径REST基础及实例开发REST基础uREST概念uREST设计原则u资源的识别 Restful Web服务的java框架实例开发(转账业务)u环境准备u 服务端开发u服务部署u 客户端访问u 补充(动态创建URI及REST常用注释)存在问题迷惑 REST基础及实例开发 部署 REST基础及实例开发 点击“Finish”,启动tomcat REST基础及实例开发REST基础uRES

    13、T概念uREST设计原则 Restful Web服务的java框架实例开发(转账业务)u环境准备u 服务端开发u服务部署u 客户端访问u 补充(动态创建URI)理解出错处 REST基础及实例开发 可以在AOM,Flex,Myeclipse下开发restful web的客户端访问应用程序 客户端应用程序通过Jersey提供的jersey-client.jar与服务端通信 部分代码/ 定义一个客户端Client c=Client.create();/ 获取指定URI下资源WebResource r=c.resource(http:/192.168.0.99:8080/transiation1/ac

    14、countres/account/tran);/ 定义一个MultivalueMap存储参数MultivaluedMap queryParams = new MultivaluedMapImpl();queryParams.add(loanAccountid,fromid);queryParams.add(loanAmounts, num);queryParams.add(borrowerid, toid);ClientResponse response=r.get(ClientResponse.class);System.out.println(r.queryParams(queryPara

    15、ms).get(String.class); REST基础及实例开发 访问客户端( http:/127.0.0.1:6888/RestfulClient/restful.faces )REST基础及实例开发REST基础uREST概念uREST设计原则u资源的识别 Restful Web服务的java框架实例开发(转账业务)u环境准备u 服务端开发u服务部署u 客户端访问u 补充(动态创建URI及REST常用注释)理解出错处 REST基础及实例开发 动态创建URI:在REST中的POST中,创建一个具有唯一URI的资源,当此资源创建成功后,就可以通过此URI访问该资源。 Example:创建一个

    16、添加用户的页面,并把用户的ID作为访问此用户URI的一部分。 用户在浏览器上输入http:/localhost:8080/Example/rest/contacts,并输入ID,Name点击“submit”如下所示:REST基础及实例开发 用户在浏览器上输入http:/localhost:8080/Example/rest/contacts/0001, 将会调用GET方法把ID为0001的信息以XML或JSON的形式显示,如下:REST基础及实例开发 具体实现u REST提供了context注释,可以引入上下文对象( Request、Response、UriInfo、ServletContex

    17、t )u 此例子中使用UriInfo类的方法创建URIPOSTProduces(MediaType.TEXT_HTML)Consumes(MediaType.APPLICATION_FORM_URLENCODED)public void newContact(FormParam(id) String id,FormParam(name) String name,Context HttpServletResponse servletResponse) throws IOException URI uri = uriInfo.getAbsolutePathBuilder().path(id).bu

    18、ild();Response.created(uri).build();u 详细代码u HTML页面脚本REST基础及实例开发 REST常用注释u Path:与根路径结合形成子资源的URIu PathParam:将参数注入参数的路径u QueryParam:普通参数传递u FormParam:表明此参数从HTML属性确定的表单输入u Produces:响应支持MediaType类型,表示服务端返回到客户端的参数类型u Consumes:响应支持MediaType类型,表示客户端传递到服务端的参数类型u Context:引入上下文对象REST基础及实例开发REST基础uREST概念uREST设计

    19、原则u资源的识别 Restful Web服务的java框架实例开发(转账业务)u环境准备u 服务端开发u服务部署u 客户端访问u 补充(动态创建URI及REST常用注释)理解出错处 REST基础及实例开发针对于POST和GET的理解不够透彻,通过查阅资料可知这几个动词的操作对象是资源集合,但是可以为GET指定一个path(URI),并创建资源(在GET对应的方法中写一段代码实现某一个功能)例如:GET Path (“add) Produces(MediaType.TEXT_PLAIN)Consumes(MediaType.TEXT_PLAIN) public String add(QueryP

    20、aram(num1) DefaultValue(1) String num1, QueryParam(num2) DefaultValue(2) String num2) float result=Float.parseFloat(num1)+Float.parseFloat(num2);return String.valueOf(result); 实现一个加法运算。上面的实现的加法运算很明显是一个资源的创建过程,而非资源的查找。这样做是不是违背了REST的设计原则?NO!REST基础及实例开发 对于一些处理函数,算法,应用程序,可以把它们自身视为资源,在REST中称为抽象资源。 以上求两个数

    21、和的函数可以把其作为一个资源,其计算结果(两个数的和)可以作为此资源的一个表述;此外,例如计算两地的距离算法,可以把计算距离算法作为一个资源,而距离只是它的一个表述。 以上处理函数都要求幂等性,所以GET是最适合实现处理函数的HTTP方法。对于GET方式,服务器端用Request.QueryString获取变量的值,对于POST方式,服务器端用Request.Form获取提交的数据。 GET是把参数数据队列加到提交表单的ACTION属性所指的URL,值和表单内各个字段意义对应在URL中可以看到。POST是通过HTTP POST机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程REST基础及实例开发Thank You!

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:REST基础及实例开发课件.pptx
    链接地址:https://www.163wenku.com/p-2971194.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库