我熟悉API。首先,我使用Forecast API。
在文档中,您将找到标题为"响应标题"的部分。它们是什么,我如何使用它们?
另外,要获得响应,它表示您需要传递API密钥以及lat和long数据。但是没有API密钥应该保密吗?有人会发现请求的内容吗?
这是我的代码:
预测模型
require 'json'
class Forecast
include HTTParty
debug_output $stdout
default_params :apiKey => 'xxxxxxxxxxxxxxxxxxxxxxxxx'
base_uri "api.forecast.io"
format :json
def self.get_weather(api,lat,long)
@response = get("/forecast/#{apiKey}/#{lat},#{long}")
end
def self.show_weather
JSON.parse(@response.body)
end
end
预测控制器
def index
@weather = Forecast.get_weather("28.5355", "77.3910")
@response = Forecast.show_weather
end
预测视图
<%= @response["currently"]["summary"] %>
答案 0 :(得分:2)
你在这里问了几个不同的问题。
响应标头:它们是HTTP响应的一部分,包含有关响应的信息。例如,他们可能会告诉您响应的MIME类型 - 例如。 Content-Type: application/json
。在这种情况下,Forecast会使用它来告诉您已完成的API调用次数(X-Forecast-API-Calls
)以及它们响应的时间(X-Response-Time
)以及一些缓存信息。
API密钥:是的,这些应该保密。 Forecast API适用于HTTPS,因此(理论上)您的API密钥应该对嗅探网络流量的人保密。主要的危险是将它保存在您的代码中,例如,将其提交给GitHub。您应该找到一种更安全的方式来存储API密钥。一个例子虽然不完美,但却将它作为一个环境变量。
我希望有所帮助。