美文网首页技术收藏GitHub上有趣的资源程序员
发布一个Github Trending的API, 并开源

发布一个Github Trending的API, 并开源

作者: anly_jun | 来源:发表于2016-10-18 10:40 被阅读878次
    trending

    之前在写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

    相关文章

      网友评论

      • b3b1c170a5dd:请问有方法可以查到过去的trend吗?
      • yangyirunning:你好,请问一个这套API可否保证长期有效呢?
        anly_jun:@yangyirunning 这个是直接解析网页的, 网页可能会变化, 且是部署在免费服务器的, 并不能持续保证可用~~
      • RockSAMA:做项目先用一下 0.0, 请问请求限制是怎样的呢
      • 862c9fb99650:不是很懂,能提示下主要是做什么吗?python用的不熟练,
        anly_jun:@Loopher 一个公开的API, 抓取了Github上Trending的网页数据以API的形式提供. App可以直接使用这个接口数据展示相关界面.

      本文标题:发布一个Github Trending的API, 并开源

      本文链接:https://www.haomeiwen.com/subject/isazyttx.html