RESTFULAPI设计开发

上传人:ren****ao 文档编号:245040709 上传时间:2024-10-07 格式:PPT 页数:34 大小:1.62MB
返回 下载 相关 举报
RESTFULAPI设计开发_第1页
第1页 / 共34页
RESTFULAPI设计开发_第2页
第2页 / 共34页
RESTFULAPI设计开发_第3页
第3页 / 共34页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,RESTFUL API,设计开发,Twitter,:,hoorace,Email,:,Blog,:,1.0beta0,目录,什么是REST,RESTFUL API介绍,实例,一些资源,一些数据,在这个流量,=,金钱的时代,为什么要了解,REST,:,API,数据角度,从数据上来看:电子商务的程序员不了解,REST API,可以吗?,为什么要了解,REST,:同行数据角度,搞电子商务的,不知道亚马逊联盟是不是觉得有点面子挂不住?,为什么要了解,REST,:,Amazon,eCommerce VS,Taobao Top,REST +SOAP,(,85:15,),REST,Http,协议你知道多少?,1,:,http,的请求方法有多少?,2,:请求包头你知道多少?,3,:返回码呢?,什么是,REST,Representational State Transfer(,表述性状态转移,),,简称,REST,,来自,Roy Fielding,的博士论文:,Architectural Styles and the Design of Network-based Software Architectures(,架构风格与基于网络的软件架构设计,),Roy Fielding,是,Day Software,公司的首席科学家,,Apache,软件基金会的合作创始人,在美国加洲大学欧文分校获得博士学位,,HTTP,、,URI,等,Web,标准的主要设计者,什么是,REST,(续),REST,从资源的角度来观察整个网络,分布在各处的资源由,URI,确定,而客户端的应用通过,URI,来获取资源的表征。获得这些表征致使这些应用程序转变了其状态。随着不断获取资源的表征,客户端应用不断地在转变着其状态,所谓表征状态转移(,Representational State Transfer,)。,REST,是一种的分布式应用架构风格,,HTTP1.1,是基于,REST,架构风格设计的。,其他分布式引用架构风格,1,:分布式对象(,RMI/EJB/HSF,),2,:远程过程调用(,SOAP/XML-RPC/JSON-RPC/HESSION,),指导思想:,REST,的架构约束,客户端,-,服务器,无状态,缓存,统一接口,分层系统,按需代码,(,可选约束,我没搞懂,),指导思想(续):,REST,的五条关键原则,为所有“事物”定义,ID,(,URI,),将所有事物链接在一起,使用标准方法,资源多重表述,无状态通信,为什么要基于,API,开发,WEB,是开放的时代,,twitter,的,30W,个客户端构造了操作壁垒,让,google,,,facebook,无法追赶;,API,让,web,,手机客户端,桌面多种操作成为可能,程序员分工更加明确,切降低了开发成本;,软件开发依赖解耦,让编程语言发挥各自的优势。,REST,导致的变化,RESTFUL API,一种基于,http,协议和,rest,架构策略的一种简单,web service,,包含以下特征:,Web,服务的基本,URI,,如,Web,服务接受与返回的互联网媒体类型,比如:,JSON,,,XML,,,YAML,等。,Web,服务在该资源上所支持的一系列请求方法(比如:,POST,,,GET,,,PUT,或,DELETE,)。,API,必须是超文本驱动,HTTP,在,RESTFUL API,中的典型应用,RESOURCE,GET,POST,PUT,DELETE,PATCH,http:/ update,GET/PUT/DELETE/PATCH,方法:幂等的,,POST,是不幂等的,POST/PUT/DELETE/PATCH,方法:不安全的,,GET,是安全的,简单实例:,Python,框架,Web.py,的实现,RESTFUL API,然后配置,urls,=,(,/item/(.*),item,),。,好吧,我承认这是我见过的最简单实现,restful API,的框架!,详细地址:http:/ API for RESTful Web Services,:,JSR-311,JSR-311,(,JAX-RS,:,Java API for RESTful Web Services,)旨在定义一个统一的规范,使得,Java,程序员可以使用一套固定的接口来开发,REST,应用。特征:,使用,POJO,编程模型,基于,Annotation,的配置,集成了,JAXB,,,JAX-RS,提供的标注将资源类,Path,,标注资源类或方法的相对路径,GET,,,PUT,,,POST,,,DELETE,,标注方法是用的,HTTP,请求的类型,Produces,,标注返回的,MIME,媒体类型,Consumes,,标注可接受请求的,MIME,媒体类型,PathParam,,,QueryParam,,,HeaderParam,,,CookieParam,,,MatrixParam,,,FormParam,分别标注方法的参数来自于,HTTP,请求的不同位置,例如,PathParam,来自于,URL,的路径,,QueryParam,来自于,URL,的查询参数,,HeaderParam,来自于,HTTP,请求的头信息,,CookieParam,来自于,HTTP,请求的,Cookie,。,代码示例,GET,Produces(MediaType.APPLICATION_JSON),Path(/book/id),public Book getBook(PathParam(id)String id),return new Book(huhu,huhu);,PUT,Path(/book/name),public void updateBook(PathParam(name)PathSegment book),Iterator it=books.iterator();,String name=String.valueOf(book.getMatrixParameters().get(name);,String content=String.valueOf(book.getMatrixParameters().get(content);,while(it.hasNext(),Book booktmp=it.next();,if(name.equals(booktmp.getName(),booktmp.setContent(content);,break;,访问示例,GET,userID,/private-,magicCookie,/full,POST,calendarID,DELETE,calendarID,PATCH/calendar/feeds/default/private/full/,eventID,JAX-RS,的实现,Apache CXF,,开源的,Web,服务框架。,Jersey,,由,Sun,提供的,JAX-RS,的参考实现。,RESTEasy,,,JBoss,的实现。,Restlet,,由,Jerome Louvel,和,Dave Pawson,开发,是最早的,REST,框架,先于,JAX-RS,出现,题外话:Spring3.0直接支持restful风格的编码了。,您选择框架要考虑的,产品成熟度,是否有成熟团队,社区,文档是否齐全,和常见框架的集成(例如:,Spirng,),对流行协议的支持(,Atom,,,Oauth,),配置的简易程度,性能,是否容易上手,前置,URI,流程,授权方式,简单的session+secret_key的模式,oauth,自定义的其他方式,开始阶段,JAVA,框架选择,JSR311,的实现,文档齐全,支持,spring,,,oauth,,,atom,支持,jetty,的集成,配置有点郁闷,考虑,cache,:,twitter,示例,考虑,cache,:,twitter,示例(续),返回数据,1,:,xml,序列化耗时,返回的数据把显得有点大,很想说的是,twitter stream api,抛弃了,xml,2,:,Json,简单清晰,数据包小,提示:不要,json-lib,选择,jackson,来序列化,josn,Taobao,,,amazon,都返回,json,,,xml2,种格式,3,:,atom,Atom,供稿格式(,Atom Syndication Format,)是用于网站消息来源,基于,XML,的文档格式。,Google Data API,和豆瓣都是基于,Atom,格式的返回,4,:,RSS,测试,框架自带的client的API测试,CURL,Firefox+Poster,资源推荐,Fielding的博士论文,:,JSR311,:,http:/jcp.org/en/jsr/detail?id=311,http:/
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!