RESTFul API 个人理解


解决什么问题

应用程序,关注的是数据和数据结构,如何组织起数据和数据结构
Web 服务,关注的的是数据在通信中的传输,对外接口使用API的方式,API的方式一直以来都是自己定义的,这是为什么我们换个团队总要重新适配API方式
REST 定义了一个Web API 该如何展示出来的标准,如果大家按着这个标准定义 API,就能减少一些困惑,API 也更加通用。

REST 是什么,核心内容是什么

REST 全称 Representational State Transfer ——表现层状态转化
说是架构,在我看来更多的是约定 API 对资源访问 的方式

REST 相关概念

资源
位于服务器中的资源路径,可以是一个操作,也可以是一个文本/图片资源
表现层
资源呈现的形式,一个操作/资源呈现为一个路径
状态转化
表现层状态的转化,如文本资源获取、文本资源改变

这样做有什么好处

明确了API 操作的主体为资源
明确了API 的操作

REST前

Request:https://server/setusername
Method:PUT (八仙过海各显神通,无一定的格式,也可能严格遵守HTTP协议)
Paragma:
{
username = @"Tracy";
uid = 10000001;
}

REST后

Request:https://server/username/10000001
Method:PUT (特定的)
Paragma:
{
username = @"Tracy";
}

怎么做

把需要操作的主体放到 URL内部
对主体的操作依据已有的Http协议方式

GET 获取  
POST新增  
PUT 更新  
DELETE 删除  

题外话 Http协议有关内容

幂等

若干次请求和单次请求的副作用完全相同,这些请求就能被称为幂等的。 GET/HEAD/PUT/DELETE 均为幂等方法

安全方法

HEAD/GET 除了获取资源信息外,这些请求不应带对资源有任何改变



你可能感兴趣的:(原理)