【问题标题】:Search repos with GitHub API using date query使用日期查询使用 GitHub API 搜索存储库
【发布时间】:2020-12-31 04:43:48
【问题描述】:

如果我向 GitHub API 发出以下 GET 请求,我会收到大约 58 个条目:

https://api.github.com/search/repositories?&per_page=250&sort=updated&order=asc&q=%22github-octocat%22

但是,以下任何日期参数都返回 0 个条目:

创建日期: (created:>=2010-09-01)

https://api.github.com/search/repositories?&per_page=250&sort=updated&order=asc&q=%22github-octocat+created:>=2010-09-01%22

日期范围: (created:2012-08-13..2020-08-14)

https://api.github.com/search/repositories?&per_page=250&sort=updated&order=asc&q=%22github-octocat+created:2012-08-13..2020-08-14%22

在 GitHub 文档中,在 Constructing a search query 部分下,语法概述如下:

SEARCH_KEYWORD_1 SEARCH_KEYWORD_N QUALIFIER_1 QUALIFIER_N

Search by when a repository was created or last updated 上的 GitHub 文档概述了上述两种日期格式,Query for values between a range 概述了它们的有效组合。我怀疑这些示例不适合这种用途,因为这些示例使用的是用于浏览器的 URL,例如 https://github.com/search?q=case+pushed%3A%3E%3D2013-03-06+fork%3Aonly&type=Repositories,而不是 api.github.com,这也令人困惑。

我正在尝试应用以下资源中显示的模式以获得一系列日期过滤器:

非常感谢任何指针。

【问题讨论】:

  • 您是否使用了正确的查询参数序列化程序?我希望您的网址中有更多字符被 urlencoded。
  • 嗨@Evert——我不确定在这种情况下会是什么。你有什么指示吗?谢谢
  • 嗯,这取决于您的语言。所以分享你的代码,也许有人可以帮忙。
  • @Evert,我实际上只是在使用 Postman 作为测试服务进行 GET 请求的组合,并在浏览器中复制这些请求,在输入 URL 时我无法附加身份验证令牌。当我了解语法时,我将使用 JS 框架。
  • 然后查找如何对urls中的变量进行urlencode。应该不难找到!

标签: api http github httprequest


【解决方案1】:

尽管 GitHub 文档概述了这样的语法:

SEARCH_KEYWORD_1 SEARCH_KEYWORD_N QUALIFIER_1 QUALIFIER_N

日期或类似参数无效,除非放在q 参数之外。而不是在双引号内包含date 限定符(如下所示%22):

q=%22mysearch+pushed%3A2017-09-01..2020-10-01+sort:updated%22

把它们拉出来,在q参数的右引号后面加上:

q=%22mystring%22+pushed%3A2017-09-01..2020-10-01+sort:updated

【讨论】:

    猜你喜欢
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    • 2018-09-09
    相关资源
    最近更新 更多