(What)什么是RESTful API
具象状态传输(REST,Representational State Transfer) 是一组实现效率、可读性、还有可拓展分散式系统的软件架构设计规范。如果一个系统能坚守这些规范,那么它就是 RESTful。
说句简单点的话,RESTful API就是符合REST规范,即REST风格的API,那…那REST规范又是虾米(O_o)??
HTTP动词
对于资源的具体操作类型:
对应SQL的命令 | 含义 | |
---|---|---|
GET | SELECT | 从服务器取出资源 |
POST | CREATE | 从服务器新建一个资源 |
PUT | UPDATE | 从服务器更新资源 |
DELETE | DELETE | 从服务器删除资源 |
URI
网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。
区分URI和URL
答:
URI(Uniform Resource Indentifier)指统一资源标识符,表示某一互联网资源。
URL(Uniform Resource Locator)指统一资源定位符,资源的地址,是URI的子集。
举个栗子吧(╹▽╹) URI:http://www.123.com/123/
| URL:http://www.123.com/123/index.html
版本
将版本号放入:https://api.example.com/v1
过滤信息
如果记录数量很多,服务器不可能都将它们返回给用户。API应该提供参数,过滤返回结果。
- ?limit=10:指定返回记录的数量
- ?offset=10:指定返回记录的开始位置。
- ?page=2&per_page=100:指定第几页,以及每页的记录数。
- ?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序。
- ?animal_type_id=1:指定筛选条件
(Why)为什么使用RESTful API
- 统一的机制,方便不同的前端设备与后端进行通信;
- 一套协议来规范多种形式的前端和同一个后台的交互方式。
(How)RESTful API设计
HTTP状态码
另附:在博客园RESTful API URI 设计: 判断资源是否存在?看到的一张 HTTP status code 示意图