Comment intégrer une API de BitCoin simple dans une application Rails
-
21-12-2019 - |
Question
Je suis nouveau dans l'API et le développement du backend en général et essayez quelques heures maintenant pour savoir comment faire quelque chose de simple comme appelez le prix du marché bitcoin actuel dans l'application My Rails.
J'ai essayé de référencer http://blockchaain.info/Ticker avec le code suivant dans mon modèle
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
puis mettez ceci à mon avis
<%= @test %>
Je sais que cela est loin, mais je suis à perte et que je voyais, je verrais que si quelqu'un pouvait offrir une bonne ressource ou peut-être me faire passer dans la bonne direction.Merci beaucoup
La solution
mec, tout va bien.
Pour obtenir plus de poignée, exécutez ces lignes 1 par 1 en IRB,
comme ça,
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}"
Autres conseils
Je vous recommanderais d'utiliser httparty qui rend l'envoi de demandes beaucoup plus simple. En ce qui concerne votre exemple, vous pourriez faire
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
évidemment je suis pp (impression) une chaîne juste pour afficher les données.Vous alliez réellement rendre les données dans la vue si vous deviez effectuer une réelle implémentation.