APIを取得して操作する方法

概要

Rails ではなく Ruby を使用して、http://api.anapi.com/ などの API を呼び出し、後で値を取得して、それが 5 より大きいかどうかを確認するにはどうすればよいでしょうか?

ハッシュを含む anarray という配列が含まれている場合、それらのハッシュの 1 つでキー key の値を取得したいと考えます。

今私が使っているのは:

require "net/https"
require "uri"

uri = URI.parse("http://api.cryptocoincharts.info/tradingPair/eth_btc")
http = Net::HTTP.new(uri.host, uri.port)

request = Net::HTTP::Get.new(uri.request_uri)

response = http.request(request)
puts response.body

# が得られます。

理解した:

# http://ruby-doc.org/stdlib-2.0.0/libdoc/open-uri/rdoc/OpenURI.html 
require 'open-uri'
# https://github.com/flori/json
require 'json'
# http://stackoverflow.com/questions/9008847/what-is-difference-between-p-and-pp
require 'pp'

buffer = open('http://api.cryptocoincharts.info/tradingPair/eth_btc').read

# api_key = "FtHwuH8w1RDjQpOr0y0gF3AWm8sRsRzncK3hHh9"

result = JSON.parse(buffer)

puts result["markets"]
# result.each do |user|
#   puts "#{user['id']}\t#{user['name']}\t#{user['email']}"
#   puts "Registered: #{user['created_at']}\n\n"
# end

# my_hash = JSON.parse('{"hello": "goodbye"}')
# puts my_hash["hello"] => "goodbye"

解決策

Net::HTTP の場合:

require 'net/http'
uri = URI('http://example.com/index.html?count=10')
Net::HTTP.get(uri) # => String

その後、そのデータを使って何でもできるようになります。たとえば、API が JSON を返す場合、Ruby の JSON モジュールを使用して文字列を解析できます。