Gdy klasa Ruby zawiera HTTParty, umieść proxy na tej klasie i wykonuj żądania przez nią:

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

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

Przykład zakłada, że HTTParty jest załadowane. Metoda proxy przyjmuje nazwę hosta i całkowity port, z opcjonalnymi argumentami nazwy użytkownika i hasła. Do dozwolonego testu public-API bez konta proxy użyj kandydata HTTP z listy proxy HTTP dla hosta i portu. Zostaw docelowy URL na get.

Wewnątrz metody instancji Reports użyj self.class.get(...), gdy zamiarem jest wywołanie właśnie tej skonfigurowanej metody klasy. Wywołanie modułu HTTParty najwyższego poziomu może zamiast tego ominąć wrapper, którego wartości domyślne właśnie skonfigurowałeś.

To samo rozróżnienie ma znaczenie, gdy kilka wrapperów API dzieli jedną aplikację. Daj każdemu jego zamierzoną politykę proxy, zamiast globalnie zmieniać HTTParty::Basement, aby naprawić jedną klasę.

HTTParty udostępnia też opcje proxy dla pojedynczego żądania, takie jak http_proxyaddr i http_proxyport. Używaj ich, gdy trasa naprawdę jest częścią jednego żądania. Wartości domyślne klasy czyta się łatwiej, gdy każda operacja Reports ma podążać tą samą drogą.

Powiązane artykuły