如何在没有外部库的情况下通过Ruby访问Kippt API?

时间:2013-07-01 14:54:00

标签: ruby api

我想通过Ruby访问Kippt API而不使用任何外部库,即Ruby所包含的所有内容都很好,但没有别的(标准库除外)。 / p>

我应该怎么做呢?请详细说明这个过程。

1 个答案:

答案 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,而我只是从该网站抓取了一个可能看起来的代码块。)