我想通过Ruby访问Kippt API而不使用任何外部库,即Ruby所包含的所有内容都很好,但没有别的(标准库除外)。 / p>
我应该怎么做呢?请详细说明这个过程。
答案 0 :(得分:1)
这是非常基本的访问,显示它是可能的:
require "net/https"
require "uri"
uri = URI.parse( 'https://kippt.com/api/users/1/' )
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
data = JSON.parse( response.body )
=> {
"username"=>"jorilallo",
"bio"=>"Co-founder of Kippt. I love building products.",
"app_url"=>"/jorilallo",
"avatar_url"=>"https://d19weqihs4yh5u.cloudfront.net/avatars/147d86b9-0830-49d8-a449-0421a6a4bf05/160x160",
"twitter"=>"jorilallo",
"id"=>1, "github"=>"jorde",
"website_url"=>"http://about.me/jorilallo",
"full_name"=>"Jori Lallo",
"dribbble"=>"jorilallo",
"counts"=>{"follows"=>1192, "followed_by"=>23628},
"is_pro"=>true, "resource_uri"=>"/api/users/1/"
}
要进行此演示并将其放入一些可重复使用的代码中,需要进行大量工作,这些代码可以处理身份验证,发布参数,请求失败以及基于HTTP的API的其他标准问题。
我建议阅读http://www.rubyinside.com/nethttp-cheat-sheet-2940.html以获取有关如何更详细地构建和处理请求的一些示例。这就是我如何做到这一点(直到写完答案,我以前从未直接使用过Ruby的net / http,而我只是从该网站抓取了一个可能看起来的代码块。)