之前在寫CoderPub時, 個人比較喜歡的github trending功能, 官方并沒有開放API. 找了很久, 最后使用了這個. 這個接口完全不是RESTful的模式, 接口請求很麻煩且詭異, 具體大家可以參看這個工程的README.
這兩天稍微閑點, 就自己擼了一個, 有需要的朋友隨意取用.
選用了Python語言, Flask微框架, 使用BeautifulSoup解析網(wǎng)頁.
API Docs
1, Trending Repos
接口名: 獲取Trending的倉庫列表
API: /api/github/trending/<lang>?since=(daily,weekly,monthly)
方法: GET
請求參數(shù):
參數(shù) | 說明 | 方式 | 類型 | 必選 | 備注 |
---|---|---|---|---|---|
lang | 語言分類 | path形式 | String | 可選 | 類似github trending網(wǎng)頁的方式 |
since | 時間區(qū)間 | query形式 | String | 可選 | daily,weekly,monthly |
響應:
返回一個Repo的列表, 包含數(shù)據(jù)如下:
參數(shù) | 說明 | 類型 | 說明 |
---|---|---|---|
avatar | 擁有者頭像 | String | url字符串 |
owner | 擁有者 | String | / |
repo | repo名字 | String | / |
desc | repo描述 | String | / |
stars | 選中區(qū)間的stars數(shù) | 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的開發(fā)者列表
API: /api/github/trending/<lang>?since=(daily,weekly,monthly)
方法: GET
請求參數(shù):
參數(shù) | 說明 | 方式 | 類型 | 必選 | 備注 |
---|---|---|---|---|---|
lang | 語言分類 | path形式 | String | 可選 | 類似github trending網(wǎng)頁的方式 |
since | 時間區(qū)間 | query形式 | String | 可選 | daily,weekly,monthly |
響應:
返回一個開發(fā)者的列表, 包含數(shù)據(jù)如下:
參數(shù) | 說明 | 類型 | 說明 |
---|---|---|---|
avatar | 開發(fā)者頭像 | String | url字符串 |
name | 擁有者名字 | String | / |
full_name | 擁有者全名 | String | originName(NickName)的形式 |
link | 開發(fā)者主頁鏈接 | 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"
}]
目前該工程已經(jīng)部署到LeanCloud, 使用的免費的主機, 有使用限制, 可能會有問題, 僅供測試娛樂之用.
請求url: http://anly.leanapp.cn/
工程源碼地址:GithubTrending