JSON API请求应用程序(rails),呈现结果

时间:2012-02-08 12:18:25

标签: ruby-on-rails ruby json

我需要开发一个小型Rails应用程序,该应用程序向JSON API发出请求,将参数引入初始表单,检查我们是否获得真实响应,然后将结果呈现到视图中(html.erb)。 / p>

你知道我在哪里可以获得这些步骤的好材料吗?欢迎任何帮助。

我正在阅读一些近似的例子:

    params_string = "whatever"
    params_string_with_api_key = params_string + "&" + @@API_KEY
    hashkey = Digest::SHA1.hexdigest(params_string_with_api_key)
    params_string += "&hashkey=#{hashkey}"

    res = Net::HTTP.get_response("api.somecompany.com", "/some/url.json?#{params_string}")

    res_sha1 = Digest::SHA1.hexdigest(res.body + @@API_KEY)

    @verified = res["X-Somecompany-Response-Signature"] == res_sha1

    parsed_json = ActiveSupport::JSON.decode(res.body)
    @results = parsed_json["results"]

在执行Net :: HTPP请求时,是否始终需要对参数字符串进行编码?还有另一种方式吗?

究竟是什么params_string += "&hashkey=#{hashkey}"

谢谢!

1 个答案:

答案 0 :(得分:0)

  

params_string + =“& hashkey =#{hashkey}”是什么?

params_string是一个看起来像?param1=val&param2=val2...的字符串。你的最后一段代码只是在字符串中添加另一个参数。如果您的问题与#{}片段有关,则此语法在ruby双引号字符串中允许您使用var的值。

  

在执行Net :: HTPP请求时,是否始终需要对参数字符串进行编码?还有另一种方式吗?

我没有看到这里编码的参数字符串。我所看到的只是检查结果,通过比较响应头和SHA1响应体来完成。

与你的问题没有关系:我一段时间就离开了Net :: HTTP,遇到了段错误的问题。我现在通过网络对所有请求使用Typhoeus