När en Ruby-klass inkluderar HTTParty sätter du proxyn på den klassen och skickar förfrågningar genom den:

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

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

Exemplet förutsätter att HTTParty är laddat. Proxy-metoden tar ett värdnamn och en heltalsport, med valfria argument för användarnamn och lösenord. För ett tillåtet public-API-test utan proxykonto använder du en HTTP-kandidat från HTTP-proxylistan för värden och porten. Låt mål-URL:en stå kvar på get.

Inuti en instansmetod i Reports använder du self.class.get(...) när avsikten är att anropa just den konfigurerade klassmetoden. Att anropa HTTParty-modulen på översta nivån kan i stället kringgå omslaget vars standardvärden du just konfigurerade.

Samma åtskillnad spelar roll när flera API-omslag delar en applikation. Ge var och en sin avsedda proxypolicy i stället för att ändra HTTParty::Basement globalt för att laga en klass.

HTTParty exponerar också proxyalternativ per begäran som http_proxyaddr och http_proxyport. Använd dem när rutten verkligen är en del av en enda begäran. Klassens standardvärden är lättare att läsa när varje Reports-operation ska följa samma väg.

Relaterade artiklar