Amikor egy Ruby-osztály tartalmazza a HTTParty-t, tedd a proxyt arra az osztályra, és azon keresztül küldd a kéréseket:

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

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

A példa feltételezi, hogy a HTTParty be van töltve. A proxy metódus gazdagépnevet és egész portot vesz át, opcionális felhasználónév- és jelszóargumentumokkal. Engedélyezett public-API teszthez proxyfiók nélkül használj HTTP-jelöltet a HTTP-proxylistáról a gazdagéphez és a porthoz. Hagyd a cél URL-t a get metóduson.

A Reports egy példánymetódusán belül akkor használd a self.class.get(...) kifejezést, ha a szándék az imént beállított osztálymetódus hívása. A legfelső szintű HTTParty-modul hívása helyette megkerülheti azt a burkolót, amelynek alapértékeit épp most állítottad be.

Ugyanez a megkülönböztetés számít, amikor több API-burkoló osztozik egy alkalmazáson. Adj mindegyiknek szándékolt proxyházirendet ahelyett, hogy a HTTParty::Basementet globálisan módosítanád egy osztály javításához.

A HTTParty kérésenkénti proxybeállításokat is kínál, például a http_proxyaddr és http_proxyport opciókat. Akkor használd ezeket, ha az útvonal valóban egyetlen kérés része. Az osztály alapértékei könnyebben olvashatók, ha minden Reports-műveletnek ugyanazt az utat kell követnie.

Kapcsolódó cikkek