Quando una classe Ruby include HTTParty, metti il proxy su quella classe ed esegui le richieste attraverso di essa:

class Reports
  include HTTParty
  http_proxy 'proxy.example', 8080
end

response = Reports.get('https://reports.example/monthly')

L'esempio presuppone che HTTParty sia caricato. Il metodo proxy accetta un nome host e una porta intera, con argomenti opzionali di nome utente e password. Per un test public-API consentito senza account proxy, usa un candidato HTTP dall'elenco dei proxy HTTP per l'host e la porta. Mantieni l'URL di destinazione su get.

All'interno di un metodo di istanza di Reports, usa self.class.get(...) quando l'intenzione è chiamare proprio quel metodo di classe configurato. Chiamare invece il modulo HTTParty di livello superiore può aggirare il wrapper di cui hai appena configurato i valori predefiniti.

La stessa distinzione conta quando più wrapper API condividono una sola applicazione. Assegna a ciascuno la sua politica proxy prevista invece di modificare HTTParty::Basement globalmente per riparare una classe.

HTTParty espone anche opzioni proxy per singola richiesta come http_proxyaddr e http_proxyport. Usale quando la rotta fa davvero parte di una singola richiesta. I valori predefiniti di classe sono più facili da leggere quando ogni operazione di Reports deve seguire lo stesso percorso.

Articoli correlati