Restful设计思想

1.REST的架构设计

  代表性状态传输(Representational State Transfer,REST)在Web领域已经得到了广泛的接受,是基于SOAP和Web服务描述语言(Web Services Description Language,WSDL)的Web服务的更为简单的替代方法。

   REST(Representational State Transfer)是一种轻量级的Web Service架构风格,其实现和操作明显比SOAP和XML-RPC更为简洁,可以完全通过HTTP协议实现,还可以利用缓存Cache来提高响应速 度,性能、效率和易用性上都优于SOAP协议。
  REST架构遵循了CRUD原则,CRUD原则对于资源只需要四种行 为:Create(创建)、Read(读取)、Update(更新)和Delete(删除)就可以完成对其操作和处理。这四个操作是一种原子操作,即一种 无法再分的操作,通过它们可以构造复杂的操作过程,正如数学上四则运算是数字的最基本的运算一样。
  REST架构让人们真正理解我们的网络协议HTTP本来面貌,对资源的操作包括获取、创建、修改和删除资源的操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法,因 此REST把HTTP对一个URL资源的操作限制在GET、POST、PUT和DELETE这四个之内。这种针对网络应用的设计和开发方式,可以降低开发 的复杂性,提高系统的可伸缩性

2.REST的设计准则
  REST架构是针对Web应用而设计的,其目的是为了降低开发的复杂性,提高系统的可伸缩性。REST提出了如下设计准则:
  网络上的所有事物都被抽象为资源(resource);
  每个资源对应一个唯一的资源标识符(resource identifier);
  通过通用的连接器接口(generic connector interface)对资源进行操作;
  对资源的各种操作不会改变资源标识符;
  所有的操作都是无状态的(stateless)。
使用REST架构
   REST不仅仅是一种崭新的架构,它带来的更是一种全新的Web开发过 程中的思维方式:通过URL来设计系统结构。REST是一套简单的设计原则、一种架构风格(或模式),不是一种具体的标准或架构。REST有很多成功的使 用案例,著名的Delicious和Flickr都提供基于REST风格的API使用,客户端调用也极其方便。
 
什么是rest? 什么是restful? 傻傻分不清楚。。
一.概念和区别:
1.关于rest
  rest :representational state transfer 表述性状态转移,是一种架构风格。
rest原则:
  <1>网络上的所有事物都被抽象为资源
  <2> 每个资源都有一个唯一的资源标识符
  <3> 同一个资源具有多种表现形式(xml,json等)
  <4> 对资源的各种操作不会改变资源标识符
  <5> 所有的操作都是无状态的

2.关于restful
  restful: 遵守了rest 原则 的web服务
  理解:rest与restful相比,多了一个ful,就英语层面来说是一个形容词,restful翻译为中文为: “rest式的”
  那么是rest式的什么呢?就是rest式的应用,rest风格的web服务也是rest式的应用,rest式的web服务是一种ROA(The Resource-Oriented Architecture)(面向资源的架构)。

3.两者的联系与区别
restful是由rest派生出来的。
二.restful用法:
  在Restful之前的操作:
  http://127.0.0.1/user/query/1 GET 根据用户id查询用户数据
  http://127.0.0.1/user/save POST 新增用户
  http://127.0.0.1/user/update POST 修改用户信息
  http://127.0.0.1/user/delete GET/POST 删除用户信息
  RESTful用法:
  http://127.0.0.1/user/1 GET 根据用户id查询用户数据
  http://127.0.0.1/user POST 新增用户
  http://127.0.0.1/user PUT 修改用户信息
  http://127.0.0.1/user DELETE 删除用户信息
之前的你每次请求的接口或者地址,都在做描述,例如查询的时候用了query,新增的时候用了save,其实完全没有这个必要,我使用了get请求,就是查询.使用post请求,就是新增的请求,我的意图很明显,完全没有必要做描述,这就是为什么有了restful
原文地址:https://www.cnblogs.com/lj520fj/p/10736018.html