说到RESTful,我相信很多人的感觉都跟我一样,“道理我都懂,有时候就是不知道怎么设计”,然后就破坏了RESTful的规范,从此设计开始崩盘。
讲道理的文章,我推荐阮一峰老师的《RESTful API 设计指南》
划重点!
1 在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。
- 5个动词(括号里是对应的SQL命令):
- GET(SELECT):从服务器取出资源(一项或多项)
- POST(CREATE):在服务器新建一个资源
- PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)
- PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)
- DELETE(DELETE):从服务器删除资源
- 过滤信息常见的参数
- ?limit=10:指定返回记录的数量
- ?offset=10:指定返回记录的开始位置
- ?page=2&per_page=100:指定第几页,以及每页的记录数
- ?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序
- ?animal_type_id=1:指定筛选条件
实例:购物场景
- 单个资源:获取用户信息
- 资源限制:获取用户列表
GET http://www.example.com/members?limit=10&offset=0
这一类API在没有传参时,后台也应该有默认页长限制住
- 多个资源:获取用户(id=28)的地址列表
- 多个资源:获取用户(id=28)的地址(id=1)信息
- 动词:用户(id=28)收藏商品(id=16)
- 动词:用户登录
POST http://www.example.com/sessions
登录对应服务端的资源应该是session
网友评论