0

github_api在我的 Rails 应用程序中使用 gem,当我向 location 或 repos 个人发送请求时,它会提供完美的输出,但是当我发送(位置和 repos)api 的组合时会给出空结果。我把我的逻辑放在下面,

逻辑:

github = Github.new github.search.users keyword:"location:bangalore repos:1", type:'user',ref:'searchresults'

生成的请求网址是

https://api.github.com/legacy/user/search/location%3Abangalore+repos%3A1?type=user&ref=searchresults

谢谢。

4

2 回答 2

0

我通过以下 URL 获得结果:https ://api.github.com/legacy/user/search/location:bangalore%20repos:1

我怀疑 github_api 没有预料到这些类型的关键字,也没有正确编码 URL 的那个片段。我建议您尝试octokit使用 Ruby 编写的官方 GitHub API 包装器。我怀疑会有这个问题。

对于它的价值,如果你需要一个 python 包装器,我github3.py在这种情况下也能正常工作。(这就是我从上面得到生成的 URL 的地方)

于 2013-05-15T14:48:29.460 回答
0

我调试库,在 url.rb 文件中应用 CGI::escape 作为关键字,所以它生成请求 url 就像

https://api.github.com/legacy/user/search/location%3Abangalore+repos%3A1?type=user&ref=searchresults

但是这个 URL 给出了空结果,因为“+”符号没有编码。所以我现在覆盖该代码,它生成请求 URL 为

https://api.github.com/legacy/user/search/location%3Abangalore%20repos%3A1?type=user&ref=searchresults

覆盖代码是,

require "github_api"
include ERB::Util


module Github
  module Utils
    module Url
      def escape(s)
        u s.to_s
      end
    end
  end
end
于 2013-05-17T04:25:19.390 回答