Configurar um proxy HTTPI do Savon para pedidos WSDL e SOAP
Configure o proxy num cliente Savon HTTPI e considere tanto a obtenção remota do WSDL como as chamadas SOAP.
Num cliente Savon que usa HTTPI, o proxy faz parte das opções do cliente. Aplica-se ao obter um WSDL remoto e ao enviar o pedido SOAP.
client = Savon.client(
wsdl: 'https://service.example/soap?wsdl',
proxy: ENV.fetch('SOAP_PROXY_URL'),
open_timeout: 5,
read_timeout: 15
)
O exemplo pressupõe o transporte HTTPI. Forneça um URL de proxy aprovado através do ambiente. Para um teste SOAP público que permita um intermediário HTTP não autenticado, um candidato da lista de proxies HTTP pode fornecer esse URL; mantenha separadas as decisões de autenticação do serviço e do proxy. Se o método de autenticação suportado usar credenciais dentro do URL, codifique os caracteres reservados dessas credenciais e mantenha o URL resultante fora dos registos.
O Savon chama-lhes «opções globais», mas são locais a uma instância de cliente. Outro cliente criado noutro local não herda o proxy automaticamente.
Verifique o transporte instalado antes de reutilizar o excerto. A documentação atual do Savon atribui estas opções ao HTTPI; o transporte Faraday tem a sua própria interface de configuração através de client.faraday e rejeita estas opções específicas do HTTPI. Configure o transporte escolhido em vez de misturar as duas interfaces.
Mantenha a conta do proxy separada das credenciais do serviço SOAP e dos valores WS-Security. O 407 do proxy, o desafio de início de sessão HTTP do serviço e uma falha SOAP identificam trocas diferentes. A obtenção do WSDL pode falhar antes de o cliente ter feito qualquer operação de aplicação.