בלקוח Savon שמשתמש ב-HTTPI, הפרוקסי הוא חלק מהאפשרויות של הלקוח. הוא חל בעת אחזור WSDL מרוחק ובעת שליחת בקשת ה-SOAP.

client = Savon.client(
  wsdl: 'https://service.example/soap?wsdl',
  proxy: ENV.fetch('SOAP_PROXY_URL'),
  open_timeout: 5,
  read_timeout: 15
)

הדוגמה מניחה את תעבורת HTTPI. ספקו כתובת URL של פרוקסי מאושר דרך הסביבה. לבדיקת SOAP ציבורית שמתירה מתווך HTTP לא מאומת, מועמד מרשימת פרוקסי HTTP יכול לספק את הכתובת; החזיקו בנפרד את החלטות האימות של השירות ושל הפרוקסי. אם שיטת האימות הנתמכת משתמשת בפרטי זיהוי בתוך הכתובת, קודדו את התווים השמורים בפרטי הזיהוי האלה והרחיקו את הכתובת המתקבלת מהלוגים.

Savon מכנה אותן „אפשרויות גלובליות”, אך הן מקומיות למופע לקוח אחד. לקוח אחר שנבנה במקום אחר אינו יורש את הפרוקסי אוטומטית.

בדקו את התעבורה המותקנת לפני שימוש חוזר בקטע. התיעוד הנוכחי של Savon משייך אפשרויות אלה ל-HTTPI; לתעבורת Faraday יש ממשק הגדרה משלו דרך client.faraday והוא דוחה את האפשרויות הספציפיות ל-HTTPI. הגדירו את התעבורה שנבחרה במקום לערבב בין שני הממשקים.

החזיקו את חשבון הפרוקסי בנפרד מפרטי הזיהוי של שירות ה-SOAP ומערכי WS-Security. קוד 407 של הפרוקסי, אתגר הכניסה ב-HTTP של השירות ותקלת SOAP מצביעים על חילופים שונים. אחזור WSDL עלול להיכשל לפני שהלקוח ביצע ולו פעולה אחת של היישום.

מאמרים קשורים