REST式架构及实践分析.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
REST式架构及实践分析

REST式架构 ——面向资源的架构 ROA定义 面向资源的架构(Resource-Oriented Architecture,ROA) 一个具体的REST式架构 一种把实际问题转换成REST式Web服务的方法 * ROA四个概念 资源 资源的名称(URI) 资源的表示 资源间的链接 * 资源举例 某软件的1.0.3版 某软件的最新版本 某天发布到taobao上的第一件商品 一张杭州旅游地图 QC中某个项目的Bug列表 某某公司04季度的营业额 大于1024的最小素数 某批三鹿奶粉的三聚氰胺含量检验结果 陈冠希与张柏芝两人间的关系 * URI与资源的关系 URI既是资源的名称,也是资源的地址。 一个资源必须至少有一个URI,而一个URI只能指示一个资源。 任何两个资源不可能是同一个。 两个不同的资源在某一时期可能指向同样的数据。 同一资源具有多个URIs的虽然能让引用变得更加容易,但坏处是将产生“稀释效应”,客户端无法自动验证它们是指向同一个资源。 * 资源的表示 对于一个本身就是一些数据项的资源,最容易想到的一个表示就是这些数据本身。 如HTML格式的网页新闻 对于代表实物或其他难以归结为信息的事物,其表示就是关于资源的状态的任何有用信息。 如“连上Web的自动饮料机”提供关于实物饮料的数据 即使在一个对象的诸多表示中,已经有一个表示包含实际数据了,它也还可以有其他包含元数据的表示。 如在线书店为每本书提供该书电子版与评论两种表示 表示的选择信息可以放在HTTP报头或URI中。 * 资源间的链接 大多数表示是超媒体(hypermedia)的,它不仅包含数据,还包含指向其它资源的链接。 Roy Fielding博士论文中指出:“将超媒体作为应用状态的引擎”。即客户端应用状态在服务器提供的“超媒体”的指引下发生变迁。 * ROA四个属性(特征标志) 可寻址性(addressability) 无状态性(statelessness) 连通性(connectedness) 统一接口(uniform interface) * 可寻址性 资源是通过URI暴露的,URI是可以寻址的。 /search?q=jellyfish 《=》 “浏览器打开google网站,搜索框输入jellyfish,点击搜索” 服务器所能提供的每一则有价值的信息都应该作为资源来发布。 区别资源的可寻址与应用的可寻址:许多Web应用不是像Web一样可寻址的,尤其是Ajax应用。 如Gmail Web服务是可寻址的,不过调用该服务的Gmail Web应用不是可寻址的。 * 无状态性 状态分两种:应用状态(application state)和资源状态(resource state)。前者保存在客户端,后者保存在服务端。 每个HTTP请求是完全孤立。请求包含服务器实现该请求的全部信息,不依赖于之前某个请求。 无状态性意味着服务端不应保存应用状态,客户端应当管理自己的应用状态。 * 连通性 资源的表示“具有链接”的特性即连通性,它要求资源应当通过它们的表示彼此链接起来。 HTTP会话的当前状态不是作为资源状态保存在服务器上的,而是被客户端作为应用状态来跟踪的。 * 统一接口 四个常见操作接口: 获取资源的一个表示:HTTP GET 创建一个新资源:向一个新URI发送HTTP PUT,或向一个已有的URI发送HTTP POST 修改已有资源:向已有URI发送HTTP PUT 删除已有资源:HTTP DELETE 两个辅助操作接口: 获取的一个只包含元数据的表示:HTTP HEAD 查看一个资源支持那些HTTP方法:HTTP OPTIONS 安全性与幂等性: GET和HEAD请求是安全的 GET、HEAD、PUT和DELETE请求是幂等的 * PUT与POST创建资源 创建资源时,PUT与POST的区别: 若客户端决定新资源的URI——用PUT 若服务器决定新资源的URI——用POST 在一个博客系统中使用PUT与POST的比较: 整个博客资源(/weblogs/myweblog) 博客里一片文章资源(/weblogs/myweblog/entries/1) * 使用PUT与POST比较 * 向新资源发送PUT请求 向已有资源发送PUT请求 POST /weblogs N/A(资源已存在) N/A(无效果) 创建一个新博客 /weblogs/myweblog 创建该博客 修改该博客的设置 往博客里添加一篇文章 /weblogs/myweblog/entries/1 N/A(客户端不可能预知URI) 编辑该博客文章 为该博客文章添加评论 POST附加资源状态 问:一个事件日志服务,只暴露一个日志资源,其URI为/log,

文档评论(0)

yaocen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档