Home » XML » XML Service : WSDL – Pengertian dan Kodenya

XML Service : WSDL – Pengertian dan Kodenya

by Hanifah Nurbaeti
by Hanifah Nurbaeti
  • 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:

ElementDeskripsi
<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:

TypeDefinisi
One-wayOperasi tersebut dapat menerima pesan tetapi tidak akan membalas
Request-responseOperasi tersebut dapat menerima permintaan dan akan memberikan tanggapan
Solicit-responseOperasi tersebut dapat mengirim permintaan dan akan menunggu tanggapan
NotificationOperasi 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”.

You may also like