什么是REST风格应用

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    什么是REST风格应用 - Presentation Transcript

    1. 什么是REST风格应用
      TonyDeng
      http://friendfeed.com/tonydeng
      http://twitter.com/wolfdeng
      http://delicious.com/wolf.deng
      http://wolfchina.blogbus.com
    2. REST介绍
      什么是REST
      REST与RPC的区别
      为什么要使用REST
      REST开发框架介绍
    3. What is REST
    4. 什么是REST
      REST是Roy.Thomas.Fielding在他的博士论文中提出的一种架构思想
      Fielding提出REST的几种约束
      REST实际上是回归http本身,或者说http是REST的实际的应用
    5. REST关键的约束
      每个资源有一个唯一标识
      使用标准方法(GET、POST、PUT、DELETE)
      Request/Response自描述
      资源多重表述(MIMEType驱动)
      无状态通信
      超媒体及应用状态引擎
    6. REST的元素
      数据元素(DataElements)
    7. REST的元素
      资源和资源标识符(Resources and Resource Identifiers)
      REST对信息的核心抽象就是资源
      资源不是存储对象(storage object)
      资源是一种概念上映射
      资源是有层次的(root resource/sub resource)
      需要URITemplate来描述资源
    8. 资源的规划
      /user
      /user/{userId}
      /user/{userId}/friend
      /user/{userId}/friend/@{groupName}
      /invite
      /invite/{key}
      /family
      /family/{familyId}
      /family/{familyId}/topic/@vote
      /family/{familyId}/topic/{topicId}
      /search
    9. REST的元素
      表述(Representations)
      表述包括数据、描述数据的元数据
      REST通过使用一个表述来捕获资源的当前或预期的状态、在组件之间传递该表述
      Request/Response自描述约束的关键
    10. REST的元素
      连接器(Connectors)
      连接器代表了一个组件通信的抽象接口。
      通过提供清晰的关注点分离、并且隐藏资源的底层实现和通信机制
    11. REST的元素
      组件(Components)
    12. REST架构的过程视图
    13. REST的三角关系
      Hypermedia: HTML, XML,JSON,JPG,GIF
      [POST,GET, PUT,DELETE],
      [CRUD]
      动词
      表述
      Resources
      名词
      URI, XRI …
    14. RESTVersus RPC
    15. RPC简单介绍
      RPC是客户端发出命令,以使服务器做出特定的操作。
      JSON-RPC、XML-RPC
      仅仅只是把http作为一个传输协议来使用,是对http协议的误读。
      RPC有动词的倾向。
    16. JSON-RPC
      JSON-RPC项目主页
      http://json-rpc.org/
      例子:
      http://localhost/json-rpc/call
      {
      “method”:”postMessage”,
      ”params”: ["I have a question:“,”Tony Deng”],
      "id": 101
      }
    17. XML-RPC
      XML-RPC项目主页
      http://www.xmlrpc.com/
      简单请求的例子
      http://localhost/xml-rpc/call
      <?xml version="1.0"?>
      <methodCall>
      <methodName>examples.getStateName</methodName>
      <params>
      <param>
      <value><id>41</id></value> </param>
      </params>
      </methodCall>
    18. REST和RPC的区别
      REST强调资源有唯一的URI,RPC强调过程(动词)有统一的接口来激发它们。
      REST回归HTTP最初的设计,RPC仅仅是把HTTP作为传输协议来使用
      REST强调各个组件的松耦合;RPC耦合更加紧密,无组件概念
      REST是由超文本驱动,RPC由方法驱动
      REST强调HTTP通信的语义可见性,通过消息头和标准的HTTP方法来体现;RPC把语义封装在HTTP消息体中。
      RPC的机制是根据语言的API(language API)来定义的,而不是根据基于网络的应用来定义的。
    19. Why REST?
    20. 优点
      使用业界开放的标准协议
      架构清晰,松耦合
      无状态服务,很方便水平扩展(scaleout)
      拥有幂等性和安全操作
      面向资源开发
      回归HTTP本身,天生就是为了Web应用
      Fielding在论文中所阐述的REST是作为一种架构风格的REST。他所设计的HTTP和URI就是根据REST的思想来设计的,REST其实就是Web架构本身,也是Web在技术上取得成功的原因。
      HTTP和URI其实就是为建造具体的REST风格架构实例而服务的。
      它是一种很好的分布式应用的架构风格
    21. REST开发框架介绍
    22. 遵循JSR311(JAX-RS)规范的框架
      Restlet
      Jersey
      RESTEasy
      CXF
    23. 其他框架
      Spring3.0
      ROR(Rubyon Rails)
      RIP(Rest in Python)

    + Tony DengTony Deng, 3 weeks ago

    custom

    111 views, 0 favs, 1 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 111
      • 106 on SlideShare
      • 5 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 3
    Most viewed embeds
    • 5 views on http://wolfchina.blogbus.com

    more

    All embeds
    • 5 views on http://wolfchina.blogbus.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?