SOAP Web Servisine Mesaj İletimi
API proxy tipi SOAP veya REST-SOAP-REST olan Api Proxy'lerde, Apinizer'a gelen mesaj üzerinde yönlendirme sekmesinde "SOAP Action değerini düzelt" seçeneği seçilmiş ise aşağıdaki durumlara göre bazı değişiklikler yapılabilir.
Bu değişikliklerin yapılabilmesi için öncelikle gelen mesajın SOAP versiyonu belirlenir.
SOAP Tipine karar verilmesi için, İstek Başlığında gönderilen Content-Type değerine ve İstek Gövdesinde yer alan SOAP XML'in namespace değerine bakılır.
Bu iki değerin farklı çıkması durumunda öncelik Content Type başlığına verilir, Content-Type değerinin boş veya anlamsız olması durumunda SOAP versiyonu, SOAP XML'in namespace değerinden belirlenir.
SOAP versiyonu değeri Content-Type ile belirleniyorsa;
- "text/xml" değeri ile başlıyorsa SOAP1.1,
- "application/soap+xml" değeri ile başlıyorsa SOAP1.2,
- "application/xop+xml" değeri ile başlıyorsa ve Content-Type değeri içindeki "type" değeri "text/xml" içeriyorsa SOAP1.1,
- "application/xop+xml" değeri ile başlıyorsa ve Content-Type değeri içindeki "type" değeri "application/soap+xml" içeriyorsa SOAP1.2,
olarak belirlenir.
SOAP versiyonu değeri SOAP XML'in namespace değeri ile belirleniyorsa;
- Namespace değeri "http://schemas.xmlsoap.org/soap/envelope/" ise SOAP1.1,
- Namespace değeri "http://www.w3.org/2003/05/soap-envelope" ise SOAP1.2,
olarak belirlenir.
SOAP versiyonu değeri belirlendiğinde;
- SOAP versiyonuna göre SOAP XML'in namespace değeri düzeltilir.
- SOAP versiyonu 1.1 olan istekler için;
- İstek başlığında "soapaction" anahtar kelimesi varsa yazım şekli düzeltilerek yoksa "SOAPAction" şeklinde başlık eklenir.
- "SOAPAction" anahtar kelimesine eklenecek değer mesajın geldiği metoda ait olan ve WSDL tanımından ayrıştırılarak elde edilen SOAPAction değeridir.
- SOAPAction değerinin başına ve sonuna yoksa tırnak işareti eklenir.
- Content-Type değeri "text/xml" olarak belirlenir.
- Content-Type değerine varsa Character Encoding değeri eklenir, yoksa default olarak ";charset=UTF-8" değeri eklenir.
- SOAP versiyonu 1.2 olan istekler için;
- Content-Type değeri "application/soap+xml" olarak belirlenir.
- Content-Type değerine varsa Character Encoding değeri eklenir, yoksa default olarak ";charset=UTF-8" değeri eklenir.
- Content-Type değerine ";action=<SOAPAction>" ifadesi eklenir.