WSDL'in Dosya olarak yüklenmesi

SOAP servislerinde özellikle sıkça karşılan bir sorun WSDL'in https adresi üzerinden erişime açılmasına rağmen içindeki XSD dosyalarının erişiminin http adresi üzerinde kalması ve dolayısıyla bunun da dosya çözümleme sorunlarına yol açmasıdır. 

Bu gibi SOAP Servislerinin Apinizer'a eklenmesi gerektiği durumlarda özellikle de servis tanım dosyasının düzeltilme seçeneği yoksa, dosya yükleme özelliği bize servisin Apinizer'a eklenebilmesini sağlar.

Fakat servisin WSDL dosya yükleme seçeneği ile Apinizer'a tanımlanması yöntemi seçilirse, diğer yükleme seçeneklerinden farklı olarak dikkat edilmesi gereken noktalar vardır.

Bunlardan ilki WSDL yapısı gereği içerisinde farklı XSD dosyalarına referans verebilir, bu referansların da sisteme yüklenmesi gerekir. Bunun için WSDL ile beraber hangi XSD dosyalarının beraber yüklenmesi gerektiğinin bulunması ve bu XSD dosyalarının içeriğinin dosya olarak indirilmesi gerekir.

Dosyalar indirildikten sonra her birinin WSDL içerisindeki yeri aşağıdaki görselde olduğu gibi güncellenmelidir:


WSDL güncellenmesi tek başına yeterli olmayabilir, XSD içerisinde başka XSD'ye referans veren yerler varsa bunlar da güncellenmelidir.

Referans olarak gösterilen XSD dosyalarının WSDL ile beraber sisteme yüklenmesi için ise Apinizer dosyaların beraber "zip"lenmesi gerekir. Fakat dosyaların ziplenmesi için dosyaların hepsinin aynı dosya yolu seviyesinde olması gereklidir. Dosyaları bir klasöre koyup, klasörün ziplenmesi durumunda WSDL düzgün bir şekilde ayrıştırılamaz.

Dosya dizin yollarını gösteren örnek görsele aşağıda yer verilmiştir:


Bu dosyaların ziplenmiş halinin görseli aşağıdaki gibidir:


SOAP Servisinde Birden Fazla Port Olması

SOAP servislerinde aşağıdaki görselde yer aldığı gibi birden fazla port olabilir.


Bu durumda Apinizer bu portlardan ilkini kullanır.

Diğer portlar için de API Proxy oluşturmak isteniyorsa, API Proxy'si oluşturulmak istenen her bir port için servisin tanım dosyası (WSDL) içerisinde sadece ilgili port kalacak şekilde WSDL güncellenmeli ve Apinizer'a yüklenmelidir.