釋出一個 Github Trending 的API,並開源

anly_jun發表於2019-02-25

之前在寫CoderPub時, 個人比較喜歡的github trending功能, 官方並沒有開放API. 找了很久, 最後使用了這個. 這個介面完全不是RESTful的模式, 介面請求很麻煩且詭異, 具體大家可以參看這個工程的README.

這兩天稍微閒點, 就自己擼了一個, 有需要的朋友隨意取用.
選用了Python語言, Flask微框架, 使用BeautifulSoup解析網頁.

API Docs

介面名: 獲取Trending的倉庫列表
API: /api/github/trending/?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: anly.leanapp.cn/api/github/…
響應結果:

[{
    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
}]複製程式碼

介面名: 獲取Trending的開發者列表
API: /api/github/trending/?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: anly.leanapp.cn/api/github/…
響應結果:

[{
    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: anly.leanapp.cn/

工程原始碼地址:GithubTrending

相關文章