Quando uma classe Ruby inclui HTTParty, coloque o proxy nessa classe e faça as requisições através dela:

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

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

O exemplo pressupõe que HTTParty esteja carregado. O método proxy recebe um nome de host e uma porta inteira, com argumentos opcionais de nome de usuário e senha. Para um teste public-API permitido sem conta de proxy, use um candidato HTTP da lista de proxies HTTP para o host e a porta. Mantenha a URL de destino no get.

Dentro de um método de instância de Reports, use self.class.get(...) quando a intenção for chamar esse método de classe configurado. Chamar o módulo HTTParty de nível superior pode, em vez disso, ignorar o wrapper cujos padrões você acabou de configurar.

A mesma distinção importa quando vários wrappers de API compartilham uma aplicação. Dê a cada um a sua política de proxy pretendida em vez de alterar HTTParty::Basement globalmente para consertar uma classe.

HTTParty também expõe opções de proxy por requisição como http_proxyaddr e http_proxyport. Use-as quando a rota for realmente parte de uma única requisição. Os padrões da classe são mais fáceis de ler quando toda operação de Reports deve seguir o mesmo caminho.

Artigos relacionados