昨天我们做了“从OTCBTC上获得市场信息”,也就是“OTCBTC都有什么币在交易”;
今天我们实作“币币交易”的市场行情!
这是最终的成果,我们接下来看看怎么实现;
第一步:初始专案
rails new api_otcbtc_tickers
cd api_otcbtc_tickers
git init
第二步:建立Ticker Model
编辑Gemfile加上gem 'rest-client',然后执行bundle
执行rails g model ticker
编辑ticker的migration档案db/migrate/201703XXXXXXXX_create_tickers.rb:
db/migrate/201703XXXXXXXX_create_tickers.rb
classCreateTickers
defchange
create_table:tickersdo|t|
+ t.string:ticker_id
+ t.string:at
+ t.numeric:buy
+ t.numeric:sell
+ t.numeric:low
+ t.numeric:high
+ t.numeric:last
+ t.numeric:vol
t.timestamps
end
+ add_index:tickers,:ticker_id
end
end
接着执行rake db:migrate建立数据库table。
第三步:抓取资料储存下来
新增lib/tasks/dev.rake,放在这个目录下的rake档案是用来编写任务脚本,让我们在Terminal中可以执行它;
lib/tasks/dev.rake
namespace :devdo
task :fetch_ticker => :environmentdo
puts"Fetch ticker data..."
response = RestClient.get"https://bb.otcbtc.com/api/v2/tickers"
data= JSON.parse(response.body)
data.eachdo|key,value|
existing_ticker = Ticker.find_by_ticker_id(key)
nextunless existing_ticker.nil?
ticker_data =value["ticker"]
Ticker.create!( ticker_id:key,
at:value["at"],
buy: ticker_data["buy"],
sell: ticker_data["sell"],
low: ticker_data["low"],
high: ticker_data["high"],
last: ticker_data["last"],
vol: ticker_data["vol"]
end
puts"Total: # tickers"
end
end
执行bundle exec rake dev:fetch_ticker就会执行这个任务,把300笔ticker存进数据库
第四步:在画面上显示出来
编辑config/routes.rb新增一行resources :tickers
config/routes.rb
Rails.application.routes.drawdo
+resources:tickers
end
执行rails g controller tickers
编辑app/controllers/tickers_controller.rb
app/controllers/cities_controller.rb
classTickersController
+defindex
+ @tickers = Ticker.all
+end
end
新增app/views/tickers/index.html.erb
app/views/tickers/index.html.erb
Ticker
Buy
Sell
Low
High
Last
Vol
启动服务器rails s,打开浏览器http://localhost:3000/tickers就会看到城市资料了。
忘记说了,要安装Bootstrap才会好看。
转载声明:本文转载自「驴妹ing」,搜索「驴妹ing」即可关注。
领取专属 10元无门槛券
私享最新 技术干货