Tutorial WSDL: Layanan Web DescriptBahasa ion dengan Contoh

Apa itu WSDL?

Layanan Web DescriptBahasa ion (WSDL) adalah file berbasis XML yang pada dasarnya memberitahu aplikasi klien apa yang dilakukan layanan web. File WSDL digunakan untuk menjelaskan secara singkat apa yang dilakukan layanan web dan memberikan klien semua informasi yang diperlukan untuk terhubung ke layanan web dan menggunakan semua fungsi yang disediakan oleh layanan web.

Dalam tutorial ini, kita akan fokus pada poin terakhir yang merupakan bagian terpenting dari layanan web, yaitu WSDL atau bahasa deskripsi layanan Web.

File WSDL digunakan untuk menjelaskan secara singkat apa yang dilakukan layanan web dan memberikan klien semua informasi yang diperlukan untuk terhubung ke layanan web dan menggunakan semua fungsi yang disediakan oleh layanan web.

Struktur Dokumen WSDL

Dokumen WSDL digunakan untuk mendeskripsikan layanan web. Deskripsi ini diperlukan agar aplikasi klien dapat memahami apa yang sebenarnya dilakukan layanan web.

  • File WSDL berisi lokasi layanan web dan
  • Metode yang diekspos oleh layanan web.

Berkas WSDL sendiri dapat terlihat sangat rumit bagi pengguna mana pun, tetapi ia memuat semua informasi penting yang dibutuhkan aplikasi klien mana pun untuk menggunakan layanan web terkait.

Di bawah ini adalah struktur umum file WSDL

  • Definisi
  • TargetNamespace
  • Tipe Data
  • Pesan
  • Tipe port
  • Bindings
  • layanan

Satu hal penting yang perlu diperhatikan di sini adalah definisi pesan, yaitu apa yang disampaikan oleh protokol SABUN sebenarnya didefinisikan dalam dokumen WSDL.

Dokumen WSDL sebenarnya memberitahu aplikasi klien apa saja jenis pesan SOAP yang dikirim dan diterima oleh layanan Web.

Dengan kata lain, WSDL seperti kartu pos yang memiliki alamat lokasi tertentu. Alamat tersebut memberikan rincian orang yang mengirimkan kartu pos tersebut. Jadi, dengan cara yang sama, file WSDL adalah kartu pos, yang memiliki alamat layanan web yang dapat memberikan semua fungsi yang diinginkan klien.

<!-- WSDL definition structure -->
<definitions     
		name="Guru99Service"
        targetNamespace=http://example.org/math/
        xmlns=http://schemas.xmlsoap.org/wsdl/>   
	<!-- abstract definitions -->   
		<types> ...    
			<message> ...   
			<portType> ...

   <!-- concrete definitions -->  
		<binding> ...   
		<service> ...
</definition>

Di bawah ini adalah diagram struktur file WSDL

Struktur Dokumen WSDL
Struktur WSDL

Elemen WSDL

File WSDL berisi bagian-bagian utama berikut

  1. Tag digunakan untuk menentukan semua tipe data kompleks, yang akan digunakan dalam pesan yang dipertukarkan antara aplikasi klien dan layanan web. Ini merupakan aspek penting dari aplikasi klien, karena jika layanan web bekerja dengan tipe data kompleks, maka aplikasi klien harus mengetahui cara memproses tipe data kompleks tersebut. Tipe data seperti float, angka, dan string semuanya merupakan tipe data sederhana, tetapi mungkin ada tipe data terstruktur yang dapat disediakan oleh layanan web.
    Misalnya, mungkin ada tipe data yang disebut EmployeeDataType yang dapat memiliki 2 elemen yang disebut “EmployeeName” bertipe string dan “EmployeeID” bertipe angka atau integer. Bersama-sama, keduanya membentuk struktur data yang kemudian menjadi tipe data kompleks.
  2. tag digunakan untuk mendefinisikan pesan yang dipertukarkan antara aplikasi klien dan server web. Pesan-pesan ini akan menjelaskan operasi input dan output yang dapat dilakukan oleh layanan web. Contoh pesan dapat berupa pesan yang menerima EmployeeID dari seorang karyawan, dan pesan keluarannya dapat berupa nama karyawan berdasarkan EmpoyeeID yang diberikan.
  3. tag digunakan untuk merangkum setiap pesan input dan output menjadi satu operasi logis. Jadi mungkin ada operasi yang disebut “GetEmployee” yang menggabungkan pesan input penerimaan EmployeeID dari aplikasi klien dan kemudian mengirimkan EmployeeName sebagai pesan output.
  4. tag digunakan untuk mengikat operasi ke jenis port tertentu. Hal ini agar ketika aplikasi klien memanggil jenis port yang relevan, aplikasi tersebut kemudian dapat mengakses operasi yang terikat pada jenis port ini. Jenis port sama seperti antarmuka. Jadi jika aplikasi klien perlu menggunakan layanan web, mereka perlu menggunakan informasi yang mengikat untuk memastikan bahwa mereka dapat terhubung ke antarmuka yang disediakan oleh layanan web tersebut.
  5. tag adalah nama yang diberikan untuk layanan web itu sendiri. Awalnya, ketika aplikasi klien melakukan panggilan ke web service, maka akan dilakukan dengan memanggil nama web service tersebut. Misalnya, layanan web dapat ditempatkan di alamat seperti http://localhost/Guru99/Tutorial.asmx . Tag layanan sebenarnya akan memiliki URL yang ditentukan http://localhost/Guru99/Tutorial.asmx, yang sebenarnya akan memberi tahu aplikasi klien bahwa ada layanan web yang tersedia di lokasi ini.

Mengapa WSDL

Layanan web merupakan komponen penting dalam membangun aplikasi web modern. Tujuan utamanya adalah untuk memungkinkan beberapa aplikasi yang dibangun pada berbagai bahasa pemrograman untuk berkomunikasi satu sama lain. Misalnya, kita dapat membuat aplikasi web .Net berbicara dengan a Java aplikasi melalui layanan Web.

Layanan web memiliki fitur-fitur utama berikut ini

  • Itu dibangun menggunakan bahasa pemrograman XML. Hampir semua teknologi modern seperti .Net dan Java memiliki perintah terkait yang memiliki kemampuan untuk bekerja dengan XML. Oleh karena itu, XML diambil sebagai bahasa yang paling tepat untuk membangun layanan web.
  • Layanan web berkomunikasi melalui HTTP. HTTP adalah protokol yang digunakan oleh semua aplikasi berbasis web. Oleh karena itu, masuk akal untuk memastikan bahwa layanan Web juga memiliki kemampuan untuk bekerja melalui protokol HTTP.
  • Layanan web sesuai dengan spesifikasi bahasa tertentu. Spesifikasi ini ditetapkan oleh W3C, yang merupakan badan pengatur semua standar web.
  • Layanan web memiliki bahasa deskripsi yang dikenal sebagai WSDL, yang digunakan untuk mendeskripsikan layanan web.

File WSDL ditulis dalam XML biasa. Alasan dibuatnya XML adalah agar file tersebut dapat dibaca oleh bahasa pemrograman apa pun.

Jadi jika aplikasi klien ditulis dalam .Net, ia akan memahami file XML. Demikian pula jika aplikasi klien ditulis dalam Java bahasa pemrograman maka ia juga akan dapat menafsirkan file WSDL.

Butuh WSDL

File WSDL inilah yang mengikat semuanya. Dari diagram di atas, Anda dapat melihat bahwa Anda dapat membuat layanan web dalam bahasa .Net.

Jadi di sinilah layanan diimplementasikan. Jika Anda tidak memiliki file WSDL dan menginginkan a Java kelas untuk menggunakan layanan web, Anda memerlukan banyak upaya pengkodean untuk mencapai hal ini.

Namun kini dengan adanya file WSDL yang berbentuk XML yang dapat dipahami oleh bahasa pemrograman apapun, kini Anda dapat dengan mudah memilikinya. Java kelas menggunakan layanan web .Net. Oleh karena itu, jumlah upaya pengkodean menjadi sangat berkurang.

Bagian Pesan WSDL

WSDL terdiri dari bagian yang disebut “pesan” yang dilambangkan dengan elemen.

Elemen ini pada dasarnya digunakan untuk menggambarkan data yang dipertukarkan antara layanan web dan aplikasi klien.

Setiap layanan web akan selalu memiliki 2 jenis pesan,

  • Satu untuk masukan layanan web, dan satu lagi untuk keluaran layanan web.
  • Input digunakan untuk mendeskripsikan parameter yang diterima oleh layanan web. Ini merupakan aspek penting dari aplikasi klien agar mengetahui nilai yang akan dikirim sebagai parameter ke layanan web.
  • Jenis pesan lainnya adalah pesan keluaran yang memberitahukan hasil apa yang disediakan oleh layanan web.

Setiap pesan, pada gilirannya, akan memiliki a elemen yang digunakan untuk menggambarkan parameter yang digunakan oleh pesan input dan output.

Di bawah ini adalah contoh sederhana tampilan pesan untuk layanan web. Fungsi layanan web adalah untuk memberikan nama "Tutorial" setelah "ID Tutorial" dikirimkan sebagai parameter ke layanan web.

Bagian Pesan WSDL

  1. Seperti yang bisa kita lihat, layanan web memiliki 2 pesan, satu untuk masukan dan satu lagi untuk keluaran.
  2. Pesan masukan dikenal sebagai TutorialNameRequest yang memiliki satu parameter bernama TutorialID. Parameter ini bertipe number yang ditentukan oleh tipe xsd:number
  3. Pesan keluaran dikenal sebagai TutorialNameResponse yang memiliki satu parameter bernama TutorialName. Parameter ini bertipe string yang ditentukan oleh tipe xsd:string

Pengikatan Jenis Port

Port digunakan di WSDL untuk menentukan satu operasi lengkap yang ditawarkan oleh layanan web.

Pada topik sebelumnya, kita melihat bahwa layanan web kita menyediakan 2 pesan, satu untuk masukan yang disebut “TutorialNameRequest” dan yang lainnya untuk keluaran yang disebut “TutorialNameResponse.” Bersama-sama bentuk pesan input dan output dikenal sebagai satu operasi lengkap.

WSDL menyediakan elemen yang disebut yang digunakan untuk mendefinisikan operasi yang disediakan oleh layanan Web.

Pengikatan Jenis Port

Jadi dalam contoh kita di atas, kita dapat memperhatikan hal berikut:

  1. Nama Jenis port yang merangkum operasi diberikan sebagai “Tutorial_PortType.”
  2. Operasi itu sendiri diberi nama “Tutorial”. Jadi operasi kami pada dasarnya menyediakan TutorialName jika TutorialID diberikan sebagai parameter masukan.
  3. Berikutnya adalah 2 pesan kita, satu untuk masukan dan satu lagi untuk keluaran yang membentuk operasi kita

Selain elemen, ada juga elemen yang digunakan untuk menentukan bagaimana pesan akan ditransfer.

Pengikatan Jenis Port

  1. Contoh di atas menunjukkan bahwa pengikatan terdiri dari nama pengikatan yang dalam kasus kita diberikan sebagai “TutorialSoapBinding”. Mengikat secara sederhana adalah informasi yang digunakan aplikasi klien untuk benar-benar mengikat dirinya ke layanan web. Setelah benar-benar terikat pada layanan web, ia kemudian memiliki kemampuan untuk memanggil berbagai operasi yang diekspos oleh layanan web.
  2. Lapisan transport diberikan sebagai http:// yang berarti pesan yang akan ditransfer melalui protokol HTTP.

Membuat File WSDL

File WSDL dibuat setiap kali layanan web dibuat dalam bahasa pemrograman apa pun.

Karena file WSDL cukup rumit untuk dibuat dari awal, semua editor seperti Visual Studio untuk .Net dan Eclipse untuk Java secara otomatis membuat file WSDL.

Berikut adalah contoh berkas WSDL yang dibuat dalam Visual Studio.

<?xml version="1.0"?>
<definitions name="Tutorial"             
		targetNamespace=http://Guru99.com/Tutorial.wsdl           
        xmlns:tns=http://Guru99.com/Tutorial.wsdl            
        xmlns:xsd1=http://Guru99.com/Tutorial.xsd           
        xmlns:soap=http://schemas.xmlsoap.org/wsdl/soap/
        xmlns="http://schemas.xmlsoap.org/wsdl/"> 
   <types>    
   		<schema targetNamespace=http://Guru99.com/Tutorial.xsd    
        xmlns="http://www.w3.org/2000/10/XMLSchema">
        
        <element name="TutorialNameRequest">       
        	<complexType>         
            	<all>            
                	<element name="TutorialName" type="string"/>        
                </all>      
            </complexType>     
       </element>    
       <element name="TutorialIDRequest">       
       		<complexType>           
            	<all>           
                	<element name="TutorialID" type="number"/>         
                </all>      
            </complexType>     
       </element>    
    </schema>
 </types>  
 <message name="GetTutorialNameInput">   
 	<part name="body" element="xsd1:TutorialIDRequest"/>  
 </message> 
 <message name="GetTutorialNameOutput">  
 	<part name="body" element="xsd1:TutorialNameRequest"/>
 </message> 
 <portType name="TutorialPortType">  
 	<operation name="GetTutorialName">    
    	<input message="tns:GetTutorialNameInput"/>     
        <output message="tns:GetTutorialNameOutput"/>   
    </operation>  
  </portType> 
  <binding name="TutorialSoapBinding" type="tns:TutorialPortType">  
  <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>  
 	 <operation name="GetTutorialName">    
  		<soap:operation soapAction="http://Guru99.com/GetTutorialName"/>   
        	<input>   
            	<soap:body use="literal"/>   
            </input>  
        <output>      
   <soap:body use="literal"/>   
 </output>   
 </operation>  
 </binding>  
 
 <service name="TutorialService">   
 	<documentation>TutorialService</documentation>  
    <port name="TutorialPort" binding="tns:TutorialSoapBinding">     
    	<soap:address location="http://Guru99.com/Tutorial"/>
    </port>
 </service>
</definitions>

File WSDL di atas terlihat sangat mengintimidasi bagi pengguna mana pun, kami akan membahas bagian-bagian yang berbeda secara rinci dalam tutorial berikutnya, tetapi untuk saat ini, mari kita lihat ringkasan apa yang sebenarnya dilakukan setiap bagian dari file WSDL.

Menerbitkan Contoh Layanan Web

Sekarang mari kita lihat contoh bagaimana kita dapat menerbitkan layanan web dan menggunakannya dengan menggunakan Visual Studio.

Dalam contoh ini, kita akan membuat layanan web dengan satu Metode Web. Metode ini akan menerima parameter Integer yang disebut “TutorialID.” Metode Web kemudian akan mengembalikan string yang disebut “Layanan Web.”

Kami kemudian akan membuat aplikasi berbasis konsol, yang akan menggunakan layanan web ini dan memanggil metode web kami sesuai dengan itu.

Mari kita lihat langkah-langkah yang diperlukan untuk menjalankan contoh ini.

Langkah 1) Langkah pertama adalah membuat layanan web Anda. Langkah-langkah rinci tentang cara Asp.Net proyek web dan layanan web dibuat telah dijelaskan sini; Silakan ikuti langkah-langkah yang sama untuk membuat proyek dan layanan web yang sesuai. Bagian kuncinya adalah memasukkan kode di bawah ini ke dalam file layanan Web.

Menerbitkan Contoh Layanan Web

namespace webservic asmx
{
	[WebService(Name = "Guru99 Web service")]
	public class TutorialService : System.Web.Services.WebService
	{
		[WebMethod]
		public string GetTutorialService(int TutoriallD)
		{
			string TutorialName = "Web Services";
			return TutorialName;
		}
	}
}

Penjelasan Kode:

  1. Di sini kita membuat Metode Web yang disebut “Guru99WebService.” Dalam metode web ini, kami menyertakan parameter bilangan bulat yang harus diteruskan setiap kali metode web ini dipanggil.
  2. Selanjutnya kita mendefinisikan variabel bernama “TutorialName” yang akan menyimpan nilai string “Layanan Web.” Ini adalah nilai yang akan dikembalikan ketika layanan web dipanggil.

Langkah 2) Setelah kita mendefinisikan file layanan web, langkah selanjutnya adalah membuat proyek klien yang akan menggunakan layanan web ini.

Mari kita membuat aplikasi konsol sederhana yang akan memanggil layanan web ini, memanggil “Guru99WebService” dan kemudian menampilkan output dari metode web di layar log konsol. Ikuti langkah-langkah di bawah ini untuk membuat aplikasi konsol.

Klik kanan file solusi Visual Studio dan pilih opsi Tambah->Proyek baru

Menerbitkan Contoh Layanan Web

Langkah 3) Pada langkah ini,

  1. Pastikan untuk terlebih dahulu memilih Visual C# Windows pilihan. Kemudian pilih opsi untuk membuat aplikasi konsol.
  2. Berikan nama untuk proyek Anda yang dalam kasus kami diberikan sebagai “DemoApplication.”

Menerbitkan Contoh Layanan Web

Setelah Anda mengklik tombol OK pada layar di atas, Anda akan dapat melihat proyek di penjelajah Solusi di Visual Studio.

Menerbitkan Contoh Layanan Web

Langkah 4) Pada langkah ini, Anda akan menetapkan aplikasi DemoApplication Console sebagai proyek awal. Hal ini dilakukan untuk memastikan bahwa aplikasi ini diluncurkan terlebih dahulu saat seluruh proyek Visual Studio dijalankan. Aplikasi Console ini, pada gilirannya, akan memanggil layanan web yang akan diluncurkan secara otomatis oleh Visual Studio.

Untuk menyelesaikan langkah ini, klik kanan proyek DemoApplication dan pilih opsi “Set as StartUp Project.”

Menerbitkan Contoh Layanan Web

Langkah 5) Langkah selanjutnya adalah menambahkan referensi layanan “Guru99Webservice” kami ke aplikasi konsol kami. Hal ini dilakukan agar Aplikasi Demo dapat mereferensikan layanan web dan semua metode web di layanan web.

Untuk melakukan ini, klik kanan file proyek DemoApplication dan pilih opsi menu Tambah->Referensi Layanan.

Menerbitkan Contoh Layanan Web

Langkah 6) Pada langkah ini, kami akan memberikan nilai berbeda yang diperlukan untuk menambahkan referensi layanan kami

  1. Pertama kita perlu memilih opsi temukan. Opsi ini secara otomatis akan mengambil file WSDL untuk layanan web TutorialService kami.
  2. Selanjutnya, kita harus memberi nama untuk referensi layanan kita. Dalam kasus kami, kami memberinya nama Guru99Webservice.
  3. Kemudian kita perlu memperluas opsi TutorialService.asmx sehingga kita dapat melihat metode 'GetTutorialService' di sisi kanan. Di sini TutorialService.asmx adalah nama file Visual Studio .Net yang berisi kode untuk layanan web kita.
  4. Kami kemudian akan melihat metode Web kami yang kami miliki di layanan web kami yang dikenal sebagai "GetTutorialService"

Menerbitkan Contoh Layanan Web

Ketika kita mengklik tombol 'OK', semua kode yang diperlukan untuk mengakses layanan web ini akan ditambahkan ke aplikasi Konsol DemoApplication kita seperti yang ditunjukkan di bawah ini.

Tangkapan layar menunjukkan bahwa “Guru99Webservice” berhasil ditambahkan ke aplikasi konsol kami.

Menerbitkan Contoh Layanan Web

Langkah 7) Langkah selanjutnya adalah menambahkan kode ke aplikasi konsol kami untuk mengakses metode web di layanan web kami. Buka file kode Program.cs yang disertakan secara otomatis dengan aplikasi konsol dan tambahkan kode di bawah ini

Menerbitkan Contoh Layanan Web

namespace DemoApplication
{
	class Program
	{
		static void Main(string[ ] args)
		{
			var client = new Guru99Webservice.Guru99WebserviceSoapClient();

			Console.WriteLine(client.GetTutorialService(l));
			
			Console.ReadKey();
		}
	}
}

Penjelasan Kode: -

  1. Bagian pertama adalah memilih file Program.cs. Ini adalah file utama yang dibuat oleh Visual Studio saat aplikasi konsol dibuat. File ini akan dieksekusi saat aplikasi konsol (dalam kasus kita aplikasi demo) dieksekusi.
  2. Kami kemudian membuat variabel bernama "klien" yang akan ditetapkan ke contoh referensi Layanan kami yang dibuat pada langkah sebelumnya. Dalam kasus kami, referensi layanannya adalah 'Guru99Webservice.Guru99WebserviveSoapClient()'
  3. Kami kemudian memanggil metode Web kami 'GetTutorialService' di layanan web TutorialService Ingatlah bahwa metode GetTutorialService kami menerima parameter integer, jadi kami hanya meneruskan parameter integer ke metode web.
  4. Baris terakhir ini hanya untuk memastikan layar log konsol tetap aktif sehingga kita dapat melihat hasilnya. Perintah ini hanya akan menunggu beberapa masukan dari pengguna.

Keluaran

Ketika semua langkah di atas diikuti, dan Aplikasi Demo dijalankan, keluaran di bawah ini akan ditampilkan.

Menerbitkan Contoh Layanan Web

Dari outputnya, kita dapat melihat dengan jelas bahwa DemoApplication memanggil layanan Web kita dan string yang dikembalikan oleh layanan Web ditampilkan di log Konsol kita.

Kesimpulan

  • Bentuk lengkap WSDL adalah Layanan Web DescriptBahasa ion
  • Dokumen WSDL adalah dokumen yang digunakan untuk mendeskripsikan layanan web. Ini adalah kunci bagi aplikasi klien mana pun untuk mengetahui di mana layanan web berada. Hal ini juga memungkinkan aplikasi klien untuk memahami metode yang tersedia di layanan web.
  • File WSDL sangat memudahkan web service untuk diimplementasikan dalam satu bahasa pemrograman dan dipanggil dari bahasa pemrograman yang berbeda.
  • Dokumen WSDL biasanya terdiri dari sebuah pesan. Untuk setiap metode web, terdapat 2 pesan, satu untuk masukan, dan lainnya untuk keluaran. Bersama-sama mereka membentuk sebuah operasi.
  • Layanan Web DescriptFile ion Language (singkatan dari WSDL) biasanya dibuat di editor yang digunakan untuk bahasa pemrograman yang sesuai.
  • Kita telah melihat bagaimana kita dapat menggunakan layanan web di Visual Studio. Ini dapat dilakukan dengan membuat proyek lain yang merupakan aplikasi konsol. Kemudian dengan menambahkan referensi layanan, kita dapat mengakses metode web di layanan web kita.