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;
- URL定位资源;http动词表示操作;status code 表示操作结果:2XX成功、3XX重定向、4XX客户端错误、5XX服务器错误;
- Timestamps: ISO-8601
- Error handling
GET 返回码:200 (OK) + 404 (NOT FOUND) +400 (BAD REQUEST)
POST 返回码:200 (OK) or 201 (CREATED)
PUT 返回码:200 (OK) + 404 (NOT FOUND) +400 (BAD REQUEST) 409 Conflict
DELETE 返回码:200 (OK)
Authentication
- OAuth2
- api_key: api.geocod.io/v1/geocode?q=42370 Bob Hope Drive, Rancho Mirage CA&api_key=YOUR_API_KEY