Cando unha clase Ruby inclúe HTTParty, pon o proxy nesa clase e fai as solicitudes a través dela:

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

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

O exemplo supón que HTTParty está cargado. O método proxy toma un nome de host e un porto enteiro, con argumentos opcionais de nome de usuario e contrasinal. Para unha proba permitida de API pública sen conta de proxy, usa un candidato HTTP da lista de proxies HTTP para o host e o porto. Mantén a URL de destino en get.

Dentro dun método de instancia de Reports, usa self.class.get(...) cando a intención sexa chamar ese método de clase configurado. Chamar o módulo HTTParty de nivel superior pode omitir o envoltorio cuxos valores predeterminados acabas de configurar.

A mesma distinción importa cando varios envoltorios de API comparten unha aplicación. Dálle a cada un a súa política de proxy prevista en vez de cambiar HTTParty::Basement globalmente para reparar unha clase.

HTTParty tamén expón opcións de proxy por solicitude como http_proxyaddr e http_proxyport. Úsaas cando a ruta sexa realmente parte dunha solicitude. Os valores predeterminados de clase son máis doados de ler cando cada operación de Reports debe seguir o mesmo camiño.

Artigos relacionados