XML WSDL
- 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
Dokumen WSDL
Dokumen WSDL menjelaskan layanan web. Ini menentukan lokasi layanan, dan metode layanan, menggunakan elemen-elemen utama ini:
Element | Description |
---|---|
<types> | Defines the (XML Schema) data types used by the web service |
<message> | Defines the data elements for each operation |
<portType> | Describes the operations that can be performed and the messages involved. |
<binding> | Defines the protocol and data format for each port type |
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 sederhana 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 input yang disebut "getTermRequest" dan pesan output yang disebut "getTermResponse".
Elemen <message> mendefinisikan 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-tanggapan adalah jenis operasi yang paling umum, tetapi WSDL mendefinisikan empat jenis:
Type | Definition |
---|---|
One-way | The operation can receive a message but will not return a response |
Request-response | The operation can receive a request and will return a response |
Solicit-response | The operation can send a request and will wait for a response |
Notification | The operation can send a message but will not wait for a response |
Operasi Satu Arah WSDL
Contoh operasi satu arah:
<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, "glossaryTerms" portType mendefinisikan operasi satu arah yang disebut "setTerm".
Operasi "setTerm" memungkinkan input pesan istilah glosarium baru menggunakan pesan "newTermValues" dengan parameter input "term" dan "nilai". Namun, tidak ada output yang ditentukan untuk operasi tersebut.
Operasi Permintaan-Tanggapan WSDL
Contoh operasi permintaan-tanggapan:
<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 permintaan-respons yang disebut "getTerm".
Operasi "getTerm" memerlukan pesan masukan yang disebut "getTermRequest" dengan parameter yang disebut "istilah", dan akan mengembalikan pesan keluaran yang disebut "getTermResponse" dengan parameter yang disebut "nilai".
Pengikatan WSDL ke SOAP
Binding WSDL mendefinisikan format pesan dan rincian protokol untuk layanan web.
Contoh operasi permintaan-tanggapan:
<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 pengikat memiliki dua atribut - nama dan tipe.
Atribut name (Anda dapat menggunakan nama apa pun yang Anda inginkan) mendefinisikan nama pengikatan, dan atribut type menunjuk ke port untuk pengikatan, dalam hal ini port "glossaryTerms".
Sabun :elemen pengikat memiliki dua atribut - gaya dan transportasi.
Atribut style dapat berupa "rpc" atau "document". Dalam hal ini kami menggunakan dokumen. Atribut transport mendefinisikan protokol SOAP yang akan digunakan. Dalam hal ini kami menggunakan HTTP.
Elemen operasi mendefinisikan setiap operasi yang diekspos oleh portType.
Untuk setiap operasi, tindakan SOAP yang sesuai harus didefinisikan. Anda juga harus menentukan bagaimana input dan output dikodekan. Dalam hal ini kami menggunakan "literal".