I need to develop a small Rails app that makes a request to an JSON API, introducing the parameters into an initial form, check if we get a real response and then render the results into a view (html.erb).
Do you know where can I get good material to do these steps? Any help is welcome.
I’m reading some near example:
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"]
Is it always needed to encode the parameters string when you do the Net::HTPP request? Is there another way?
What does exactly params_string += "&hashkey=#{hashkey}"?
Thank you!
params_stringis a string that looks like?param1=val¶m2=val2.... Your last piece of code is just appending another param to the string. If your issue is with the#{}fragment, this syntax, in a ruby double-quoted string, allows you to use the value of a var.I don’t see the parameters string being encoded here. All I see is a checking of the results, done by comparing a response header with a SHA1’d response body.
Not really related to your questions : I went away from Net::HTTP a while back, having troubles with segfault. I now use Typhoeus for all requests through the network.