- WSDL adalah singkatan dari Web Services Description Language
- WSDL digunakan untuk menggambarkan layanan web
- WSDL ditulis dalam XML
- WSDL adalah rekomendasi W3C dari 26. Juni 2007
Section Artikel
Dokumen WSDL
Dokumen WSDL menjelaskan layanan web. Ini menentukan lokasi layanan dan metode layanan, menggunakan elemen utama berikut:
Element | Deskripsi |
---|---|
<types> | Mendefinisikan tipe data (XML Schema) yang digunakan oleh layanan web |
<message> | Mendefinisikan elemen data untuk setiap operasi |
<portType> | Menjelaskan operasi yang dapat dilakukan dan pesan yang terlibat. |
<binding> | Mendefinisikan protokol dan format data untuk setiap jenis port |
Struktur utama dokumen WSDL terlihat seperti ini:
<definitions> <types> data type definitions........ </types> <message> definition of the data being communicated.... </message> <portType> set of operations...... </portType> <binding> protocol and data format specification.... </binding> </definitions>
Contoh WSDL
Ini adalah bagian yang disederhanakan dari dokumen WSDL:
<message name="getTermRequest"> <part name="term" type="xs:string"/> </message> <message name="getTermResponse"> <part name="value" type="xs:string"/> </message> <portType name="glossaryTerms"> <operation name="getTerm"> <input message="getTermRequest"/> <output message="getTermResponse"/> </operation> </portType>
Dalam contoh ini, elemen <portType> mendefinisikan “glossaryTerms” sebagai nama port dan “getTerm” sebagai nama operasi.
Operasi “getTerm” memiliki pesan masukan yang disebut “getTermRequest” dan pesan keluaran yang disebut “getTermResponse”.
Elemen <message> menentukan bagian dari setiap pesan dan tipe data terkait.
Elemen <portType>
Elemen <portType> mendefinisikan layanan web, operasi yang dapat dilakukan, dan pesan yang terlibat.
Jenis permintaan-respons adalah jenis operasi yang paling umum, tetapi WSDL mendefinisikan empat jenis:
Type | Definisi |
---|---|
One-way | Operasi tersebut dapat menerima pesan tetapi tidak akan membalas |
Request-response | Operasi tersebut dapat menerima permintaan dan akan memberikan tanggapan |
Solicit-response | Operasi tersebut dapat mengirim permintaan dan akan menunggu tanggapan |
Notification | Operasi tersebut dapat mengirim pesan tetapi tidak akan menunggu jawaban |
Operasi One-Way WSDL
Contoh operasi one-way:
<message name="newTermValues"> <part name="term" type="xs:string"/> <part name="value" type="xs:string"/> </message> <portType name="glossaryTerms"> <operation name="setTerm"> <input name="newTerm" message="newTermValues"/> </operation> </portType >
Dalam contoh di atas, portType “glossaryTerms” mendefinisikan operasi one-way yang disebut “setTerm”.
Operasi “setTerm” memungkinkan masukan pesan istilah glosarium baru menggunakan pesan “newTermValues” dengan parameter masukan “term” dan “value”. Namun, tidak ada keluaran yang ditentukan untuk operasi tersebut.
Operasi Request-Response WSDL
Contoh operasi request-response:
<message name="getTermRequest"> <part name="term" type="xs:string"/> </message> <message name="getTermResponse"> <part name="value" type="xs:string"/> </message> <portType name="glossaryTerms"> <operation name="getTerm"> <input message="getTermRequest"/> <output message="getTermResponse"/> </operation> </portType>
Dalam contoh di atas, portType “glossaryTerms” mendefinisikan operasi request-response yang disebut “getTerm”.
Operasi “getTerm” memerlukan pesan masukan bernama “getTermRequest” dengan parameter bernama “term”, dan akan mengembalikan pesan keluaran yang disebut “getTermResponse” dengan parameter yang disebut “value”.
WSDL Mengikat ke SOAP
Binding WSDL menentukan format pesan dan detail protokol untuk layanan web.
Contoh operasi request-respons:
<message name="getTermRequest"> <part name="term" type="xs:string"/> </message> <message name="getTermResponse"> <part name="value" type="xs:string"/> </message> <portType name="glossaryTerms"> <operation name="getTerm"> <input message="getTermRequest"/> <output message="getTermResponse"/> </operation> </portType> <binding type="glossaryTerms" name="b1"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <operation> <soap:operation soapAction="http://example.com/getTerm"/> <input><soap:body use="literal"/></input> <output><soap:body use="literal"/></output> </operation> </binding>
Elemen binding memiliki dua atribut – nama dan tipe.
Atribut name (kita dapat menggunakan nama apa pun yang diinginkan) menentukan nama binding dan atribut type menunjuk ke port untuk binding, dalam hal ini port “glossaryTerms”.
SOAP: elemen binding memiliki dua atribut – gaya dan transportasi.
Atribut gaya dapat berupa “rpc” atau “document”. Dalam hal ini kita gunakan dokumen. Atribut transport mendefinisikan protokol SOAP yang akan digunakan. Dalam hal ini kita menggunakan HTTP.
Elemen operasi menentukan setiap operasi yang diekspos oleh portType.
Untuk setiap operasi, tindakan SOAP yang sesuai harus ditentukan. Kita juga harus menentukan bagaimana input dan output dikodekan. Dalam hal ini kami menggunakan “literal”.