REST
REpresentational State Transfer 直接翻译:表现层状态转移
REST 描述的是在网络中 client 和 server 的一种交互形式;REST 本身不实用,实用的是如何设计 RESTful API(REST风格的网络接口)
RESTful API
路径
在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。
如:
https://api.example.com/v1/zoos
https://api.example.com/v1/animals
HTTP 动词
对于资源的具体操作类型,由 HTTP 动词表示。
常用的HTTP动词有下面五个(括号里是对应的 SQL 命令):
- GET(SELECT):从服务器取出资源(一项或多项)。
- POST(CREATE):在服务器新建一个资源。
- PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
- PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
- DELETE(DELETE):从服务器删除资源。
小组里常用:
- GET 用来获取资源,
- POST 用来新建资源(也可以用于更新资源,比如登录),
- PUT 用来更新资源,
- DELETE 用来删除资源。
返回结果
针对不同操作,服务器向用户返回的结果应该符合以下规范:
- GET /collection:返回资源对象的列表(数组)
- GET /collection/resource:返回单个资源对象
- POST /collection:返回新生成的资源对象
- PUT /collection/resource:返回完整的资源对象
- PATCH /collection/resource:返回完整的资源对象
- DELETE /collection/resource:返回一个空文档