版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mangosnow/article/details/51176076
解决什么问题
应用程序,关注的是数据和数据结构,如何组织起数据和数据结构
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 除了获取资源信息外,这些请求不应带对资源有任何改变