本文结合GitHub API v3介绍RESTful接口的设计规则
- api与用户通信总是使用HTTPS协议:https://api.github.com;
- 尽量将API部署在专属域名下,https://api.github.com;加入API很简单,不会有扩展,则可以考虑放到主域名下,例如https://www.github.com/api;
- 版本号放在url中,https://developer.github.com/v3;或将版本号放在头信息中,例如访问https://api.github.com的REST(V3版本)时,
Accept: application/vnd.github.v3+json
; - api网址,或者说是endpoint,每个endpoint代表一种资源,这也是路径不能为动词的原因:用户
https://api.github.com/users;
某个用户某个仓库的issue**https://api.github.com/repos/username/repo_name/issues?parameter=val;
某个用户的仓库https://api.github.com/user/repos
; - 对资源的操作类型,由HTTP verb表示。curl -X DELETE/POST/… api.example.com; [注]curl -H 表示定义请求头;
- 过滤信息,Filtering information,当请求内容较多时,使用limit、offset(指定开始位置),分页、排序、筛选等方式限制返回信息量:
curl 'https://api.github.com/user/repos?page=2&per_page=100'
; - URL定位资源;http动词表示操作;status code 表示操作结果:2XX成功、3XX重定向、4XX客户端错误、5XX服务器错误;
- 所有操作都是无状态(Stateless)的:服务端生成响应客户端请求的数据中包含状态转移的数据,客户端借助这份数据可以进行状态转移,例如获取列表的“下一页”
,另一个状态(下一页连接)和状态转移的方向next(表示连接为下一页)都有服务器生成存放在客户端;
- 带参考博文这里写链接内容
推荐阅读
- 框架|Mybatis的一级缓存和二级缓存
- Android|OkHttp 异步网络请求流程
- SpringBoot的基础搭建
- 框架|springboot把配置实体和配置文件关联
- Android|Android网络框架-OkHttp使用
- shiro的一点记录(三)
- util|POI兼容读取Excel2003和Excel2007
- 分享mybatis的常见面试题
- 高并发系统三大利器之缓存
- 算法和数据结构|【回溯法】批处理作业调度问题