Используйте ключ API в HTTParty - PullRequest
2 голосов
/ 10 сентября 2011

Я пытаюсь получить доступ к службе, которая использует формат URL.www.example.com/api/API_KEY/action

Приведенный ниже код является небольшим примером того, чего я пытаюсь достичь.

require 'httparty'

class MyAPI
  include HTTParty
  debug_output $stdout

  base_uri "example.com/api/#{@api_key}"

  def initialize(api_key)
     @api_key = api_key
  end

  def statistics
    return self.class.get("/statistics")
  end
end

Запрос к серверу:

MyAPI.new('apikey').statistics

выглядит как

GET /api//statistics

Я знал, что это оптимистично, но я поместил переменную api_key в base_uri.Как сделать так, чтобы URL использовал динамический ключ api_key?

1 Ответ

3 голосов
/ 27 сентября 2011

Вам не хватает метода чтения для @ api_key.

Добавьте следующее в свой класс, чтобы разрешить установку @api_key после инициализации.

attr_accessor :api_key

Или добавить, чтобы разрешить его чтение, но не устанавливать позже.

attr_reader :api_key
...