我正在尝试获取特定语言(例如Java)的所有github存储库的列表,而不会缩小任何特定关键字的搜索范围。最好,我想直接从curl,没有脚本执行此操作。问题是我尝试格式化API网址并且无法找到合适的网址,包括language=Java
参数但没有关键字。
例如,以下URL似乎在其描述中使用关键字“language”或“java”查询repos,包括一些Scala和Haskell存储库:
curl -X GET https://api.github.com/legacy/repos/search/language=java
另一方面,使用?
表示法返回空结果:
curl -X GET https://api.github.com/legacy/repos/search?language=java
curl -X GET https://api.github.com/legacy/repos/search/?language=java
大写或小写J似乎也无关紧要。
那么如何在不指定关键字的情况下使用语言参数?
评论:似乎有用的技巧是使用单字母关键字,从A到Z重复。是否有一种不那么尴尬的方式?
答案 0 :(得分:5)
我会根据v3 api使用它: https://api.github.com/search/repositories?q=language:Java
如果您想要排序:
https://api.github.com/search/repositories?q=language:Java&sort=stars&order=desc
答案 1 :(得分:3)
你接近答案了。为了获得特定语言的结果,您必须使用冒号,如下所示:
language:{your_language_here}
因此,对于Java来说,它将是:
curl -X GET https://api.github.com/legacy/repos/search/language:java
答案 2 :(得分:0)
您可以使用github网站上的主搜索表单执行此操作。但请确保在查询中使用“language:NAME”语法,而不是使用语言下拉列表。
例如: https://github.com/search?q=language%3AJava&type=Repositories
不像API中的JSON那样容易解析,但应该完成这项工作。