概述
REST 从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表示方式。获得这些表示致使这些应用程序转变了其状态。随着不断获取资源的表示方式,客户端应用不断地在转变着其状态,所谓表述性状态转移(Representational State Transfer)。
这一观点不是凭空臆造的,而是通过观察当前Web互联网的运作方式而抽象出来的。Roy Fielding 认为,“设计良好的网络应用表现为一系列的网页,这些网页可以看作的虚拟的状态机,用户选择这些链接导致下一网页传输到用户端展现给使用的人,而这正代表了状态的转变。”
REST是设计风格而不是标准。REST通常基于使用HTTP,URI,和XML以及HTML这些现有的广泛流行的协议和标准
- 资源是由URI来指定。
- 对资源的操作包括获取、创建、修改和删除资源,这些操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法
- 通过操作资源的表现形式来操作资源。
- 资源的表现形式则是XML或者HTML,取决于读者是机器还是人,是消费web服务的客户软件还是web浏览器。当然也可以是任何其他的格式。
HTTP操作
HTTP 请求方法在RESTful Web 服务中的典型应用
资源:
- 一组资源的URI,比如http://example.com/resources/
- GET:列出 URI,以及该资源组中每个资源的详细信息(后者可选)。
- PUT:使用给定的一组资源替换当前整组资源。
- POST:在本组资源中创建/追加一个新的资源。 该操作往往返回新资源的URL。
- DELETE:删除 整组资源。
- 单个资源的URI,比如http://example.com/resources/142
- GET:获取 指定的资源的详细信息,格式可以自选一个合适的网络媒体类型(比如:XML、JSON等)
- PUT:替换/创建 指定的资源。并将其追加到相应的资源组中
- POST:把指定的资源当做一个资源组,并在其下创建/追加一个新的元素,使其隶属于当前资源
- DELETE:删除 指定的元素
- 备注:
PUT 和 DELETE 方法是幂等方法。GET方法是安全方法 (不会对服务器端有修改,因此也是幂等的)。幂等方法就是无论进行几次操作结果都不会改变的安全方法
网友评论