之前在写CoderPub时, 个人比较喜欢的github trending功能, 官方并没有开放API. 找了很久, 最后使用了这个. 这个接口完全不是RESTful的模式, 接口请求很麻烦且诡异, 具体大家可以参看这个工程的README.
这两天稍微闲点, 就自己撸了一个, 有需要的朋友随意取用.
选用了Python语言, Flask微框架, 使用BeautifulSoup解析网页.
API Docs
1, Trending Repos
接口名: 获取Trending的仓库列表
API: /api/github/trending/<lang>?since=(daily,weekly,monthly)
方法: GET
请求参数:
参数 | 说明 | 方式 | 类型 | 必选 | 备注 |
---|---|---|---|---|---|
lang | 语言分类 | path形式 | String | 可选 | 类似github trending网页的方式 |
since | 时间区间 | query形式 | String | 可选 | daily,weekly,monthly |
响应:
返回一个Repo的列表, 包含数据如下:
参数 | 说明 | 类型 | 说明 |
---|---|---|---|
avatar | 拥有者头像 | String | url字符串 |
owner | 拥有者 | String | / |
repo | repo名字 | String | / |
desc | repo描述 | String | / |
stars | 选中区间的stars数 | int | / |
link | repo链接 | String | / |
示例:
请求url: http://anly.leanapp.cn/api/github/trending/java?since=weekly
响应结果:
[{
avatar: "https://avatars3.githubusercontent.com/u/69631?v=3&s=40",
desc: "A framework for building native apps with React.",
link: "https://github.comfacebook/react-native",
owner: "facebook",
repo: "react-native",
stars: 417
},
...
{
avatar: "https://avatars3.githubusercontent.com/u/4239472?v=3&s=40",
desc: "A small android library to transition between a circular ImageView from one Activity to a rectangular ImageView in the launched Activity.",
link: "https://github.comvikramkakkar/ImageTransition",
owner: "vikramkakkar",
repo: "ImageTransition",
stars: 206
}]
2, Trending Developers
接口名: 获取Trending的开发者列表
API: /api/github/trending/<lang>?since=(daily,weekly,monthly)
方法: GET
请求参数:
参数 | 说明 | 方式 | 类型 | 必选 | 备注 |
---|---|---|---|---|---|
lang | 语言分类 | path形式 | String | 可选 | 类似github trending网页的方式 |
since | 时间区间 | query形式 | String | 可选 | daily,weekly,monthly |
响应:
返回一个开发者的列表, 包含数据如下:
参数 | 说明 | 类型 | 说明 |
---|---|---|---|
avatar | 开发者头像 | String | url字符串 |
name | 拥有者名字 | String | / |
full_name | 拥有者全名 | String | originName(NickName)的形式 |
link | 开发者主页链接 | String | / |
示例:
请求url: http://anly.leanapp.cn/api/github/trending/developers/java?since=weekly
响应结果:
[{
avatar: "https://avatars3.githubusercontent.com/u/69631?v=3&s=40",
full_name: "facebook (Facebook)",
link: "https://github.com/facebook",
name: "facebook"
},
...
{
avatar: "https://avatars3.githubusercontent.com/u/4280789?v=3&s=40",
full_name: "wangshaolei (fearless)",
link: "https://github.com/wangshaolei",
name: "wangshaolei"
}]
目前该工程已经部署到LeanCloud, 使用的免费的主机, 有使用限制, 可能会有问题, 仅供测试娱乐之用.
请求url: http://anly.leanapp.cn/
工程源码地址:GithubTrending