RestClient получить с auth_token

Я новичок в RestClient, но я глубоко искал в Интернете и не смог найти ничего полезного.

Мой код следующий и работает, но я ищу что-то более элегантное:

def get_from_mgmt(sub_path, par)

  par += "&" unless par.empty?
  path = ":http//#{USER}:#{PASSWORD}@#{HOST}/#{sub_path}.json?#{par}auth_token=#{AUTH_TOKEN}"
  single_page = JSON.parse(RestClient.get path)

end

Нашел в инете следующее:

response = RestClient::Request.new(
:method => :get,
:url => @my_url + "/" + path.to_s,
:user => @my_user,
:password => @my_pass,
:headers => { :accept => :json,
:content_type => :json }
).execute
results = JSON.parse(response.to_str)

и мне это нравится, но я не понимаю, куда добавить AUTH_TOKEN и другие параметры. Я уже пытался добавить auth_token внутри заголовков и отдельно, но внутри инициализации.

Любая помощь приветствуется! Спасибо.


person Trillian    schedule 15.11.2013    source источник


Ответы (1)


Хорошо, наконец я нашел его. Я должен поместить параметры и auth_token (который также рассматривается как параметр) в :payload

response = RestClient::Request.new(
     :method => :get,
     :url => base_url + "/" + sub_path,
     :user => user,
     :password => pwd,
     :headers => {:accept => :json,
                  :content_type => :json},
     :payload => {:auth_token => auth_token}.merge(par)
).execute

где par — это хэш параметров. В моем случае par = {:states = "fail"}

person Trillian    schedule 21.11.2013