Een Savon HTTPI-proxy configureren voor WSDL- en SOAP-verzoeken
Configureer de proxy op een Savon HTTPI-client en houd rekening met zowel het ophalen van een externe WSDL als SOAP-aanroepen.
Bij een Savon-client die HTTPI gebruikt, hoort de proxy bij de opties van de client. Hij geldt bij het ophalen van een externe WSDL en bij het versturen van het SOAP-verzoek.
client = Savon.client(
wsdl: 'https://service.example/soap?wsdl',
proxy: ENV.fetch('SOAP_PROXY_URL'),
open_timeout: 5,
read_timeout: 15
)
Het voorbeeld gaat uit van het HTTPI-transport. Geef een goedgekeurde proxy-URL door via de omgeving. Voor een openbare SOAP-test die een niet-geverifieerde HTTP-tussenpersoon toestaat, kan een kandidaat uit de HTTP-proxylijst die URL leveren; houd beslissingen over service- en proxyverificatie gescheiden. Als de ondersteunde verificatiemethode inloggegevens in de URL gebruikt, codeer dan de gereserveerde tekens in die gegevens en houd de resulterende URL buiten de logboeken.
Savon noemt ze ‘globale opties’, maar ze zijn lokaal voor één clientinstantie. Een client die elders wordt gebouwd, erft de proxy niet automatisch.
Controleer het geïnstalleerde transport voordat je het fragment hergebruikt. De huidige documentatie van Savon kent deze opties toe aan HTTPI; het Faraday-transport heeft via client.faraday zijn eigen configuratie-interface en weigert deze HTTPI-specifieke opties. Configureer het gekozen transport in plaats van de twee interfaces te mengen.
Houd het proxyaccount gescheiden van de inloggegevens van de SOAP-service en van WS-Security-waarden. De 407 van de proxy, de HTTP-inloguitdaging van de service en een SOAP-fout duiden op verschillende uitwisselingen. Het ophalen van de WSDL kan al mislukken voordat de client één applicatiehandeling heeft uitgevoerd.