REST及RESTful相关概念

REST,即Representational State Transfer的缩写,翻译为中文就是‘表述性状态转移’。

URL与URI

URI = Universal Resource Identifier 统一资源标志符,用来标识抽象或物理资源的一个字符串。 URL = Universal Resource Locator 统一资源定位符,一种定位资源的主要访问机制的字符串, 一个标准的URL必须包括:protocol、host、port、path、parameter。 URN = Universal Resource Name 统一资源名称,通过特定命名空间中的唯一名称或ID来标识资源。

图片说明

简单来说,就是一个URI可以表示一个资源,而Restful API正是基于而进行设计。

http请求方式

常用的http请求方式大概有如下几种:

还有一些不是特别常用的请求方式(与REST无关,作为补充记录),如head\options

REST

回到开头的引用段落看

REST,即Representational State Transfer的缩写,翻译为中文就是‘表述性状态转移’。

现在我们来理解这句话。首先确定服务器上的对应资源,将每一个资源设置一个URI与之对应,配上http不同的请求方式,这是一种面向资源的操作。 在RESTful风格中,http的请求方式对应的使用场景如下:

如:

RESTful API的设计

通常来讲,符合REST原则设计的接口,就可以称其为RESTful风格的接口。 但在实际应用中,有时候也未必严格遵守REST原则,例如常见的情况,因参数果多或者参数中含有保密信息,所以从服务器获取信息时也常常使用post请求方式。RESTful api的设计相对更加灵活,他不是一个原则性的东西,只是一种设计风格。 关于put为什么是幂等的:put请求在修改资源时,传的参数时资源表现的全部属性,所以无论执行多少次,执行结果都是一致的,而post和patch则不同,例如patch只传修改的属性,而当数据表中有一条属性为更新时间,此时每次patch的执行结果必然是不同的。这也是REST为什么选则put作为修改资源的请求方式,而不是post或者patch的原因。 记录下目前遇到的原则:

参考: 百度