How to pass parameter in RestClient get request header and to access the parameter in controller

StackOverflow https://stackoverflow.com/questions/20510573

  •  31-08-2022
  •  | 
  •  

Question

I am using RestClient in my ruby on rails app to send a get request to an api of my app like the following:

RestClient.get(url?params1=<val1>&param2=<val2>..)

The problem is that I also have to pass the secret API key to access the api in header of the get request. I have no idea how to pass this parameter in header of the request and how to access this param api_key inside my controller to validate the request to get access to that api. So I want something like that:

class StudentsController < ApplicationController

 before_filter :validate_access, :only => [:<api_name>]

 private

   def validate_access
     .... < I don't have any idea what to write here>

In this restrict_access function I want to check the value of api_key in request header to determine whether the request will be given access to that function or not.

Était-ce utile?

La solution

You can set header values to RestClient.get by 2nd argument.

RestClient.get "/url?params1=<val1>&param2=<val2>..", {x_your_api_token: "YOUR_API_TOKEN"}

And in ActionController, you can get it by request.headers["X-Your-API-Token"]

def validate_access
  api_token = request.headers["X-Your-API-Token"] # header name is case insentsitive
  ...
end

See:

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top