Domanda

Sto cercando di accedere a un servizio che utilizza il formato URL. www.example.com/api/api_key/action

Il codice seguente è un piccolo esempio di ciò che sto cercando di ottenere.

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

La richiesta del server:

MyAPI.new('apikey').statistics

esce come

GET /api//statistics

Sapevo che era ottimista ma ho messo la variabile API_KEY in base_uri. Come faccio a farlo in modo che l'URL utilizzi API_Key dinamico?

È stato utile?

Soluzione

Ti manca un metodo lettore per @api_key.

Aggiungi quanto segue alla tua classe per consentire l'impostazione di @API_KEY dopo l'inizializzazione.

attr_accessor :api_key

Oppure aggiungi per consentire la lettura, ma non impostato in seguito.

attr_reader :api_key
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top