如何在RestClient get参数中传递参数并访问控制器中的参数

时间:2013-12-11 04:34:24

标签: ruby-on-rails ruby rest-client

我在我的ruby on rails应用程序中使用RestClient向我的应用程序的api发送get请求,如下所示:

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

问题是我还必须传递秘密API密钥才能访问get请求标头中的api。我不知道如何在请求的标头中传递此参数如何在我的控制器内访问此param api_key以验证访问该API的请求。所以我想要这样的东西:

class StudentsController < ApplicationController

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

 private

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

在这个restrict_access函数中,我想检查请求头中的api_key的值,以确定是否可以为该请求授予访问权。

1 个答案:

答案 0 :(得分:3)

您可以通过第二个参数将标题值设置为RestClient.get

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

在ActionController中,您可以通过request.headers["X-Your-API-Token"]

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

请参阅: