我有一个Ruby脚本:
require 'uri'
require 'net/http'
require 'openssl'
require 'json'
require 'pp'
require 'opal'
require 'ostruct'
url = URI("MY URI")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(url)
request["content-type"] = 'application/json'
request["authorization"] = 'MY AUTH'
request["cache-control"] = 'no-cache'
response = http.request(request)
result = JSON.parse(response.body)
if response.code == "200"
result.each do |doc|
# puts doc
print doc ["id"]
print " "
print doc ["is_completed"]
print " "
print doc ["name"]
print "\n"
end
else
puts "error"
end
这是正常的。
我所做的是:
1)安装了Sinatra
2)我能够运行一个ruby文件并看到localhost显示的内容。
我需要做什么
如上所述,我拥有Sinatra的宝石,只是在做一个简单的“#hello world"确实在localhost网站上显示。我正在寻找的主要内容是我可以做些什么来在网站上显示上述脚本的结果。
提前致谢。
更新:我按如下方式设置了我的代码,
require 'sinatra'
get '/' go
code = "<%= MY ENTIRE CODE I POSTED ABOVE %>"
erb code
end
当我转到localhost时,我收到API调用的完整响应,该响应位于&#34;结果&#34;变量。 &#34;打印&#34;语句仍然显示在执行脚本的终端上。
现在的问题是,如何将特定数据发送到网页。比如在&#34; print&#34;声明。谢谢。希望很清楚。
答案 0 :(得分:0)
我能够找到答案,现在我的工作正是我需要的。
最终守则:
require 'sinatra'
get '/' do
require 'uri'
require 'net/http'
require 'openssl'
require 'json'
require 'pp'
require 'opal'
require 'ostruct'
url = URI('MY URI FOR DATA')
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(url)
request['content-type'] = 'application/json'
request['authorization'] = 'MY AUTH INFO'
request['cache-control'] = 'no-cache'
request['postman-token'] = 'b1dfa857-69f3-dc2e-3c23-ae60632891cb'
response = http.request(request)
jhash = JSON.parse(response.body)
output = ''
jhash.each do |doc|
title_tag = doc ["id"]
info_item = doc ["name"]
output << "<TR><td>#{title_tag}</td><td>#{info_item}</td></tr>"
end
erb :index, :locals => {results: output}
end
index.erb文件只包含:
<table>
<th>The Weather in Buffalo, NY, USA</th>
<tr>
<td><%= results %></td>
</tr>
</table>
结果现在正是我想要的。谢谢你的回复。