Când o clasă Ruby include HTTParty, pune proxy-ul pe acea clasă și fă cererile prin ea:

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

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

Exemplul presupune că HTTParty este încărcat. Metoda proxy primește un nume de gazdă și un port întreg, cu argumente opționale de nume de utilizator și parolă. Pentru un test public-API permis fără cont de proxy, folosește un candidat HTTP din lista de proxy-uri HTTP pentru gazdă și port. Lasă URL-ul destinației pe get.

În interiorul unei metode de instanță a clasei Reports, folosește self.class.get(...) când intenția este să apelezi exact acea metodă de clasă configurată. Apelarea modulului HTTParty de nivel superior poate ocoli în schimb wrapper-ul căruia tocmai i-ai configurat valorile implicite.

Aceeași distincție contează când mai multe wrapper-e API împart o singură aplicație. Dă fiecăruia politica de proxy dorită, în loc să modifici global HTTParty::Basement pentru a repara o singură clasă.

HTTParty expune și opțiuni de proxy pe cerere, precum http_proxyaddr și http_proxyport. Folosește-le când ruta face cu adevărat parte dintr-o singură cerere. Valorile implicite ale clasei sunt mai ușor de citit când fiecare operație Reports trebuie să urmeze aceeași cale.

Articole similare