Cuando una clase Ruby incluye HTTParty, pon el proxy en esa clase y haz las solicitudes a través de ella:

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

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

El ejemplo supone que HTTParty está cargado. El método proxy toma un nombre de host y un puerto entero, con argumentos opcionales de nombre de usuario y contraseña. Para una prueba permitida de API pública sin cuenta de proxy, usa un candidato HTTP de la lista de proxies HTTP para el host y el puerto. Mantén la URL de destino en get.

Dentro de un método de instancia de Reports, usa self.class.get(...) cuando la intención sea llamar a ese método de clase configurado. Llamar al módulo HTTParty de nivel superior puede omitir el envoltorio cuyos valores predeterminados acabas de configurar.

La misma distinción importa cuando varios envoltorios de API comparten una aplicación. Da a cada uno su política de proxy prevista en lugar de cambiar HTTParty::Basement globalmente para reparar una clase.

HTTParty también expone opciones de proxy por solicitud como http_proxyaddr y http_proxyport. Úsalas cuando la ruta sea realmente parte de una solicitud. Los valores predeterminados de clase son más fáciles de leer cuando cada operación de Reports debe seguir el mismo camino.

Artículos relacionados