Když třída Ruby zahrnuje HTTParty, umístěte proxy na tuto třídu a posílejte požadavky přes ni:

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

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

Příklad předpokládá, že HTTParty je načteno. Metoda proxy přijímá název hostitele a celočíselný port, s volitelnými argumenty uživatelského jména a hesla. Pro povolený test public-API bez proxy účtu použijte HTTP kandidáta ze seznamu HTTP proxy pro hostitele a port. Ponechte cílovou URL na get.

Uvnitř instance metody Reports použijte self.class.get(...), když je záměrem zavolat právě tuto nakonfigurovanou metodu třídy. Volání modulu HTTParty nejvyšší úrovně místo toho může obejít obal, jehož výchozí hodnoty jste právě nastavili.

Stejný rozdíl je důležitý, když několik obalů API sdílí jednu aplikaci. Dejte každému jeho zamýšlenou proxy politiku, místo abyste globálně měnili HTTParty::Basement kvůli opravě jedné třídy.

HTTParty také vystavuje proxy volby pro jednotlivý požadavek, jako jsou http_proxyaddr a http_proxyport. Použijte je, když je trasa skutečně součástí jednoho požadavku. Výchozí hodnoty třídy se čtou snadněji, když má každá operace Reports sledovat stejnou cestu.

Související články