一、RESTful API规范
1 英文名:Representational State Transfer,中文全称:表征性状态转移 2 Web API接口的设计风格,尤其适用于前后端分离的应用模式中 3 与语言,平台无关,任何框架都可以写出符合restful规范的api接口 4 规范:10条 -1 数据的安全保障:url链接一般都采用https协议进行传输 -2 接口特征表现:api关键字标识 -https://api.baidu.com/books/ -https://www.baidu.com/api/books/ -3 多版本共存:url链接中标识接口版本 -https://api.baidu.com/v1/books/ -https://api.baidu.com/v2/books/ -4 数据即是资源,均使用名词(可复数)*********** -接口一般都是完成前后台数据的交互,交互的数据我们称之为资源 -一般提倡用资源的复数形式,不要使用动词 -查询所有图书 -https://api.baidu.com/books/ -https://api.baidu.com/get_all_books/ # 错误示范,不可用 -https://api.baidu.com/delete-user # 错误的示范,不可用 -https://api.baidu.com/user # 删除用户的示例,到底是删还是查?由第5条规范决定 -5 资源操作由请求方式决定:*********** https://api.baidu.com/books - get请求:获取所有书 https://api.baidu.com/books/1 - get请求:获取主键为1的书 https://api.baidu.com/books - post请求:新增一本书书 https://api.baidu.com/books/1 - put请求:整体修改主键为1的书 https://api.baidu.com/books/1 - patch请求:局部修改主键为1的书 https://api.baidu.com/books/1 - delete请求:删除主键为1的书 -6 过滤,通过在url上传参的形式传递搜索条件 https://api.example.com/v1/zoos?limit=10 :指定返回记录的数量 https://api.example.com/v1/zoos?offset=10&limit=3:指定返回记录的开始位置 https://api.example.com/v1/zoos?page=2&per_page=100:指定第几页,以及每页的记录数 https://api.example.com/v1/zoos?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序 https://api.example.com/v1/zoos?animal_type_id=1:指定筛选条件 -7 响应状态码 -返回数据中带状态码 -{'code':100} -8 返回结果中带错误信息 -{'code':100,'msg':'因为xx原因失败'} -9 返回结果,该符合以下规范 GET /collection:返回资源对象的列表(数组) GET /collection/resource:返回单个资源对象(字典) POST /collection:返回新生成的资源对象 (新增后的对象字典) PUT /collection/resource:返回完整的资源对象 (修改后的对象字典) PATCH /collection/resource:返回完整的资源对象 (修改后的对象字典) DELETE /collection/resource:返回一个空文档 () -10 返回的数据中带链接地址 -查询id为1的图书接口,返回结果示例(伪代码) {'code':100, 'msg':'成功', 'result': {'title':'西游记', 'price':12.3, 'publish':'https://127.0.0.1/api/v1/publish/3' } }