github做的比较好的地方
- 文档写的好,对资源的从属分类做的特别好,让人一眼就知道大致在做什么;
- 对各种接口的变迁有对象的描述,也有对应的解决方案;add-team-member 和 add-or-update-team-membership 都是在teams中,增加一个成员,但是membership就像是对member的一个升级版本,前者当在
teams
中邀请成员的时候,如果该用户不存在在orgs
中,就会返回相应的状态码,相当于报错。但是后者就做到了平滑的升级,当用户不存在在orgs
中的时候就发一封邮件给这个用户,然后把这个用户的状态设置为penging
,当用户同意加入teams
的时候就把该用户的状态设置为actived
- 如果调用不同版本的接口, 或者使用其他的数据格式(不是json)的接口可以通过
http
的Accept
头部字段进行制定;
- 更加安全:如果外部访问的内部不开放的资源,不会返回401(Unauthorized),会返回404,这是为了不让攻击者轻易找到内部的资源
- 使用缓存, 以
events
这个资源为例子,如果在缓存时间内没有新的event
被触发,那么服务端会返回的是304(Not Modified) - 对发起请求的角色的请求进行限流操作,减少服务器压力,【rate-limit】, 【rate-limiting】
- 合理的使用状态码
- /orgs/:org/members 成功返回200,如果请求者不是该组织的成员会重定向(302)到/orgs/:org/public_members<