Rest简介
2000年,Roy Thomas Fielding在他的博士论文中首次提出软件架构设计原则Rest,即基于HTTP/1.1协议等Web规范的设计指导原则,Rest全名Representational State Transfer,翻译是”表现层状态转化”[阮一峰]。也就是一种软件设计原则。Rest体现在API设计主要在一下几点:
-
通过URI(统一资源定位符)的来指定资源
-
通过资源的表现形式来操作资源
-
对资源的操作包括获取、创建、修改和删除资源,对应HTTP协议提供的GET、POST、PUT 和DELETE方法
方法 操作 GET 获取资源 POST 插入资源或者更新现有的资源 DELETE 删除资源 PUT 插入资源或者更新现有的资源 OPTIONS 列举允许对资源进行的操作 HEAD 返回Response Header
REST API不依赖于协议,但是几乎全部的REST都是基于HTTP协议的。因此,举例也就只举HTTP的例子。基于HTTP的REST API的优势:
- 通讯本身的无状态特性会提高服务器对请求的处理能力
- 浏览器的本身就是客户端
- 相对于其他叠加在HTTP协议之上的机制,REST的软件依赖性更小
- 可以利用缓存来提高性能
RestApi的设计注意事项:
- URI不能包含动词
POST /en/transfer/zh/hello //错误的
- URI中的名词表示资源集合,使用复数形式
GET http://wwww.example.com/projects
RestApi设计
1.使用的协议
HTTP协议
2.可以把版本号放在URI中
3.案例:
- GET /users:获取所有的成员
- POST /user:添加一个成员
- GET /uses/ID:得到user_id为ID的成员信息
- PUT /users/ID:更新user_id为ID的成员信息
- DELETE /users/ID:删除user_id为ID的成员
- GET /users/developer:得到所有的开发成员
网友评论