二、RESTful Web服务学习笔记

1、三种Web服务的特征

Web服务目前有三种实现方案:

  • XML-RPC:XML远程过程调用
  • SOAP:简单对象访问协议
  • REST:表征状态转移

XML-RPC主要考虑的是“方法”,已不推荐。SOAP主要考虑的是“服务”,是W3C标准。这两种协议定义规范完整,但实现相对复杂,所以实际应用相对较少。 REST关键考虑的是“资源”,资源使用逻辑URL进行标识,状态功能都可以使用资源表征(表示、代表)。模式架构的Web服务实现相对简洁,近期应用广泛,各大Web服务提供商均提供REST模式的Web服务。

2、REST具体应用例子  

3、REST的基本概念

  • REST从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表征
  • 获得这些表征致使这些应用程序转变了其状态。随着不断获取资源的表征,客户端应用不断地在转变着其状态,此所谓表征状态转移。
  • 设计良好的网络应用表现为一系列的网页,这些网页可以看作的虚拟的状态机,用户选择这些链接导致下一网页传输到用户端展现给使用的人,而这正代表了状态的转变。

 

4、REST示例

<!--请求-->

http://abc.com/users
<!--响应-->

<?xml version="1.0" encoding="UTF-8"?>

<users>

      <user>

            <gender>M</gender>

            <id>1</id>

            <username>billy</username>

      </user>

      <user>

            <gender>M</gender>

            <id>2</id>

            <username>peter</username>

      </user>

</users>

 

5、请求的特点

  •  资源使用URI表示:
    http://abc.com/users
  • 对资源的操作隐含在HTTP请求中:
    GET  http://abc.com/users
  • GET请求:表示获取资源信息。请求是无状态的、幂等的。
  • POST请求:表示新建同类资源。

 

6、目录形式的URI

  •  URI使用类似于目录的层次结构表示资源:
  •  一组资源:
    <!--获取所有用户信息-->
    
    http://abc.com/users
  • 单个资源:
    <!--获取id为2的用户信息-->
    
    http://abc.com/users/2

 

7、常见用法

  • 获取所有用户信息:
    GET  http://abc.com/users
  • 获取某位用户信息:
    GET  http://abc.com/users/1234
  • 添加新用户:
    POST http://abc.com/users
    
    <user>
    
         <gender>F</gender>
    
         <username>rose</username>
    
    </user>

 

8、REST的原则

REST Web服务需要定义对以下三个方面进行定义:

  1. URI,表示资源。
  2. Web服务接受与返回的互联网媒体类型,比如:JSON,XML等。
  3. Web服务在该资源上所支持的一系列请求方法(如:GET,POST,PUT或DELETE

 

9、REST的优点

  • 可以利用缓存Cache来提高响应速度;
  • 通讯本身的无状态性可以让不同的服务器的处理一系列请求中的不同请求,提高服务器的扩展性;
  • 浏览器即可作为客户端,简化软件需求;
  • 相对于其他叠加在HTTP协议之上的机制,REST的软件依赖性更小;
  • 不需要额外的资源发现机制;
  • 在软件技术演进中的长期的兼容性更好。

更多请看全文地址

你可能感兴趣的:(Restful)