Closed axetroy closed 7 years ago
@axetroy 这个是真的赞!我也看见了。。用 GraphQL 的话理论上应该可以加速数据抓取,同时也减少现在会出现的无法抓到数据的情况(V3 API 调用频率超限制或者超时)。 之前把 hacknical 拆分了 server,目前 hacknical 主站提供简历服务的后端(待拆分)和前端,GitHub 的数据提供和抓取被拆到了这个 server 里:hacknical-api;同时,这个 server 也给我另一个正在开发中的项目提供 GitHub 的数据支持:jarvim-web,不同 server 间使用 HMAC 进行验证。
等之后找时间重构 hacknical-api 就行了,但是近期主要时间在忙工作上的项目,所以具体安排还得待定
@axetroy
Working in progress! 开始把 API 转换为 GraphQL 了 不过有坑啊。。用户 token 在 v3 和 v4 API 的权限不一致,在 v3 OAuth 下,只需要 user:email 的权限就能获取大部分的公开数据,但是转为 v4 后,organization 的信息就无法再获取到了。所以目前还得还得 v3 v4 混着用,下一步寻找下解决方案
https://developer.github.com/v4/
今天试了一下GraphQL,发现真是惊为天人
RESTFUL缺点: 数据来源取决于服务端,如果A接口数据不足,则需要请求B接口,B接口还不足,还需要请求C接口,期间浪费了N多无用数据与http请求
GraphQL优点: 数据取决于客户端,只要你想要的数据
另外发现: GraphQL API v4提供的一些接口,是v3没有的。 比如:contributedRepositories 获取用户贡献过的项目
就像Github首页的右侧挂件