Pergunta

Eu sou novo a API do back-end e de desenvolvimento em geral, e de ter tentado por algumas horas, agora para descobrir como fazer algo simples, como chamar o atual preço de mercado bitcoin no meu app Rails.

Eu tentei de referência http://blockchain.info/ticker com o código a seguir no meu modelo

require 'rest-client'
require 'json'

base_url = "http://blockchain.info/ticker"
response = RestClient.get base_url
data = JSON.load response
cool = data[0]["CNY"]
@test = JSON.pretty_generate cool

e, em seguida, colocar isso no meu ponto de vista

<%= @test %>

Eu sei que isso está fora de forma, mas eu estou em uma perda e percebi que eu iria ver se alguém poderia fornecer um bom recurso ou talvez me indo na direção certa.Muito obrigado

Foi útil?

Solução

Cara, seu trabalho é bom.

Substituir dados[0]["CNY"] com dados["CNY"], isso é tudo.

Para obter mais lidar, execute estas linhas 1 a 1 no irb,

Assim como este,

1.9.3p385 :001 > require 'rest-client'
 => true 
1.9.3p385 :002 > require 'json'
 => true 

1.9.3p385 :004 > base_url = "http://blockchain.info/ticker"
 => "http://blockchain.info/ticker" 

1.9.3p385 :005 > response = RestClient.get base_url

1.9.3p385 :006 > data = JSON.load response

1.9.3p385 :007 > cool = data["CNY"]
 => {"15m"=>5519.13613, "last"=>5519.13613, "buy"=>5578.16433, "sell"=>5853.54832, "24h"=>5616.47, "symbol"=>"¥"} 

1.9.3p385 :008 > @test = JSON.pretty_generate cool
 => "{\n  \"15m\": 5519.13613,\n  \"last\": 5519.13613,\n  \"buy\": 5578.16433,\n  \"sell\": 5853.54832,\n  \"24h\": 5616.47,\n  \"symbol\": \"¥\"\n}" 

1.9.3p385 :009 > p @test
"{\n  \"15m\": 5519.13613,\n  \"last\": 5519.13613,\n  \"buy\": 5578.16433,\n  \"sell\": 5853.54832,\n  \"24h\": 5616.47,\n  \"symbol\": \"¥\"\n}"
 => "{\n  \"15m\": 5519.13613,\n  \"last\": 5519.13613,\n  \"buy\": 5578.16433,\n  \"sell\": 5853.54832,\n  \"24h\": 5616.47,\n  \"symbol\": \"¥\"\n}"

Outras dicas

Eu recomendo que você use httparty o que faz o envio de solicitações muito mais simples.Com relação ao seu exemplo, você poderia fazer

require 'httparty'
require 'json'

base_url = "http://blockchain.info/ticker"
response = HTTParty.get(base_url)
data = JSON.parse(response.body)
data.each_pair do |ticker, stats|
  pp "Ticker: #{ticker} - 15m: #{stats['15m']}"
end

Obviamente, eu estou pp (impressão) de limite de uma seqüência de caracteres apenas para mostrar os dados.Você realmente iria processar os dados no modo de exibição se você fosse fazer uma implementação real.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top