WSDL File

Merhaba arkadaslar, bu yazımda SOAP protokolü ile çalışan web servislerin kullanmıs oldugu description file olan WSDL dosyasını inceleyeceğiz.

Web Services Description Language(WSDL)

Xml-Soap tabanlı web servislerin nasıl çalıştığını, servisin hangi operasyonları içerisinde barındırdığını ve bu methodların input/output bileşenleri, hangi porttan ayağa kalktığı vs gibi bilgileri içerisinde barındırır. Xml formatındaki .wsdl uzantıya sahip olan bir dosyadır. “wiz-dull” olarak okunur

WSDL elementlerine birazdan bakacağız, onun öncesinde wsdl konusunda şunları da ekleyelim;

  • WSDL, xml formatında bir dosya oldugu icin yüzmeye alışık olduğumuz sularda kulaç atacağız.
  • WSDL dosyası servisin location bilgisini, servis üzerindeki methodları vs içerdiği için openness’dir. Yani geliştirmeye açıktır, ek özellikler eklenebilir development’ı kolaydır, anlaşılırdır.
  • Bir servisin wsdl dosyası elinizde varsa rahatça bir client oluşturabilir ve servisi kullanabiliriz.
  • Yukarıda saydıgımız özellikleri zaman içerisinde kullanacağız

 

WSDL Elements

WSDL dosyası birkaç ana element’den oluşmaktadır. Bunlar servise name desc gibi, kullanılacak olan data tipi gibi, bind etme gibi bilgileri içeren elementlerdir.

  • <definitions> tag : Her WSDL dosyasında bulunan root elementtir. Servis name bilgisini içerir.
  • <message> tag : client ve server arasında gidip gelecek olan mesajdır. Web servis iki tür cevap içerir; request input ve response output.
  • <part> tag : <message> tag içerisinde yer alır. <message> içerisinde 0 yada birden fazla olabilir. Şu demektir; input olarak requestt name ve age bilgisini alabilir. Bu iki degisken iki part demektir.
  • <portType> tag : web servisin aksiyon alacağı methodu belirtir. İçerisinde input/output bilesenini barındırır.
  • <binding> tag : Her port type için methodun nasıl çalışacağını belirtir. Genellikle soap:binding ile HTTP üzerinde bing etme işlemi kullanılır.
  • <service> tag : <binding> tag’ini kullanarak hangi porttan calısacagını belirtir.

Şimdi örnek bir wsdl dosyasına bakalım;

Yukarıdaki wsdl dosyasına göre olusacak olan localhost:8080 portundan hizmet verecek ve üzerinde bir adet method barındıracaktır. <portType> içerisindeki operation’lardan biri olan getHello methodu request ve response parametrelerini <message> ile tanımlar. <binding> ile getHello bind edilir, service ile de dışarıya kullanılmak için açılır.

Daha sonra eclipse üzerinden wsdl dosyası oluşturmayı, Java Bean Skeleton’ları oluşturmayı, Servis için client oluşturmayı ve en son olarak AXIS ve CXF’den biraz bahsedip yazıları bitirmiş olacağız.

Örnek olarak internette weather wsdl diye arama yaptığımda şu adres en üstte çıktı : http://www.webservicex.net/globalweather.asmx?WSDL

Bind etimiz servis olan HelloService’in sonuna ?wsdl eklersek dışarıya açtığımız wsdl dosyası da görünecektir. Örnek wsdl dosyasını inceleyebilirsiniz. Daha sonra hazır wsdl’leri SOAP UI’dan nasıl kullanabiliriz gibi konulara da bakacağız. Gerekirse mock servis de oluşturup testler yapabiliriz.

Mesela verdiğim adresteki weather servisini kullanalım

Screenshot from 2016-01-21 23:48:43

 

 

Merak etmeyin daha sonra wsdl oluşturup, SOAP UI üzerinden test yapacağız.

Yazımı burada sonlandırmak istiyorum arkadaslar.

 

~ Alican Akkus.

1220 Total Views 3 Views Today