Perangkat lunak saat ini lebih canggih dari sebelumnya. Mereka dapat menyediakan begitu banyak informasi dan fungsionalitas bagi pengguna. Dengan kemampuan aplikasi yang semakin canggih, pernahkah Anda bertanya-tanya bagaimana semua itu bisa dicapai?
Salah satu jenis berkas yang sering muncul dalam pengembangan aplikasi adalah berkas WSDL, tetapi apa itu?
Apa itu Berkas WSDL?
WSDL (Web Services Description Language) memungkinkan aplikasi yang berbeda untuk berkomunikasi satu sama lain melalui jaringan dengan cara yang terstandarisasi. Ini menghubungkan penyedia dan konsumen layanan web, memungkinkan pertukaran data antara kedua belah pihak, tetapi tidak terbatas pada itu.
Berkas WSDL juga dikenal karena memberikan deskripsi yang cukup mengenai kemampuan layanan web, khususnya untuk layanan web berbasis SOAP. Berkas WSDL ditulis dalam bahasa XML (eXtensible Markup Language) dan sangat penting untuk pengujian API SOAP.
Lebih penting lagi, berkas WSDL signifikan karena definisi perjanjian formal antara penyedia layanan web dan konsumen layanan. Berkas WSDL menunjukkan operasi apa yang tersedia, format dan struktur pesan, dan detail penting lainnya yang diperlukan saat menggunakan layanan web.
Struktur Berkas WSDL dengan Contoh
Berkas WSDL memiliki komponen kunci yang menyediakan informasi untuk menggunakannya. Artikel ini akan menunjukkan bagian-bagian dari berkas WSDL dalam bahasa XML, menggunakan layanan web cuaca sebagai contoh.
Tipe type
Bagian type dari berkas WSDL digunakan untuk mendefinisikan tipe data yang akan digunakan dalam operasi layanan web.
<types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://example.com/weather">
<element name="City" type="string"/>
<element name="Weather" type="string"/>
</schema>
</types>Contoh ini menentukan struktur elemen, termasuk nama mereka City dan Weather yang bertipe string.
Pesan message
Bagian message mendefinisikan elemen data yang dipertukarkan antara penyedia layanan web dan pengguna layanan. Dalam contoh di atas, Anda dapat melihat nama pesan GetWeatherRequest dan GetWeatherResponse.
<message name="GetWeatherRequest">
<part name="City" element="tns:City"/>
</message>
<message name="GetWeatherResponse">
<part name="Weather" element="tns:Weather"/>
</message>Di sini, pesan GetWeatherRequest dan GetWeatherResponse didefinisikan dengan bagian yang menentukan elemen data yang dikirim atau diterima.
Tipe Port portType
Bagian portType menjelaskan serangkaian operasi yang dapat dilakukan oleh layanan web, seperti nama operasi GetWeather. Ini mendefinisikan antarmuka abstrak untuk layanan, mencantumkan operasi beserta pesan masukan tns:GetWeatherRequest dan keluaran tns:GetWeatherResponse.
<portType name="WeatherServicePortType">
<operation name="GetWeather">
<input message="tns:GetWeatherRequest"/>
<output message="tns:GetWeatherResponse"/>
</operation>
</portType>Contoh di atas menunjukkan WeatherServicePortType operasi yang ditentukan GetWeather dengan pesan masukan dan keluaran yang ditentukan.
Binding binding
Bagian binding menentukan bagaimana operasi abstrak yang didefinisikan dalam portType dipetakan ke protokol konkret untuk komunikasi. Ini mendefinisikan detail seperti format pesan dan protokol (misalnya, SOAP).
<binding name="WeatherServiceSoapBinding" type="tns:WeatherServicePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="GetWeather">
<soap:operation soapAction="http://example.com/weather/GetWeather"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>Dalam contoh ini, WeatherServiceSoapBinding didefinisikan dengan SOAP sebagai protokol binding, menentukan detail tentang format pesan dan transport.
Port port
Bagian port menentukan alamat jaringan tempat layanan web dapat diakses.
<service name="WeatherService">
<port name="WeatherServicePort" binding="tns:WeatherServiceSoapBinding">
<soap:address location="http://example.com/weather/service"/>
</port>
</service>Di sini, WeatherService didefinisikan dengan WeatherServicePort yang menggunakan binding SOAP, dan alamatnya ditentukan sebagai http://example.com/weather/service.
Contoh Berkas WSDL
Contoh Berkas WSDL Layanan Web Cuaca Sederhana
Mengompilasi berbagai potongan kode komponen kunci yang disediakan di bagian sebelumnya, kita dapat menggabungkannya dan membuat berkas WSDL layanan web cuaca sederhana.
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://example.com/weather"
targetNamespace="http://example.com/weather">
<types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://example.com/weather">
<element name="City" type="string"/>
<element name="Weather" type="string"/>
</schema>
</types>
<message name="GetWeatherRequest">
<part name="City" element="tns:City"/>
</message>
<message name="GetWeatherResponse">
<part name="Weather" element="tns:Weather"/>
</message>
<portType name="WeatherServicePortType">
<operation name="GetWeather">
<input message="tns:GetWeatherRequest"/>
<output message="tns:GetWeatherResponse"/>
</operation>
</portType>
<binding name="WeatherServiceSoapBinding" type="tns:WeatherServicePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="GetWeather">
<soap:operation soapAction="http://example.com/weather/GetWeather"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="WeatherService">
<port name="WeatherServicePort" binding="tns:WeatherServiceSoapBinding">
<soap:address location="http://example.com/weather/service"/>
</port>
</service>
</definitions>Dalam contoh layanan web cuaca sederhana ini, dapat diamati bahwa:
- Layanan web beroperasi di bawah namespace
http://example.com/weather. - Ini mendefinisikan dua tipe data sederhana:
CitydanWeather. - Ada dua pesan,
GetWeatherRequestdanGetWeatherResponse, yang menentukan data masukan dan keluaran untuk operasiGetWeather. - Tipe port
WeatherServicePortTypemendefinisikan operasiGetWeather. WeatherServiceSoapBindingmenentukan bahwa komunikasi akan menggunakan SOAP dengan gaya dan transport tertentu.- Layanan
WeatherServicememiliki port bernamaWeatherServicePortmenggunakan binding SOAP, dan alamatnya adalahhttp://example.com/weather/service.
Contoh Berkas WSDL Layanan Web E-Commerce Kompleks
Berikut adalah contoh berkas WSDL layanan web e-commerce yang lebih rumit yang mencakup beberapa operasi, tipe data, dan fitur.
?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://example.com/ecommerce"
targetNamespace="http://example.com/ecommerce">
<types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://example.com/ecommerce">
<element name="Product">
<complexType>
<sequence>
<element name="ProductId" type="string"/>
<element name="ProductName" type="string"/>
<element name="Price" type="decimal"/>
</sequence>
</complexType>
</element>
<element name="Order">
<complexType>
<sequence>
<element name="OrderId" type="string"/>
<element name="CustomerName" type="string"/>
<element name="Products" type="tns:Product" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
</element>
</schema>
</types>
<message name="GetProductRequest">
<part name="ProductId" element="tns:ProductId"/>
</message>
<message name="GetProductResponse">
<part name="Product" element="tns:Product"/>
</message>
<message name="PlaceOrderRequest">
<part name="Order" element="tns:Order"/>
</message>
<message name="PlaceOrderResponse">
<part name="Confirmation" type="string"/>
</message>
<portType name="ECommerceServicePortType">
<operation name="GetProduct">
<input message="tns:GetProductRequest"/>
<output message="tns:GetProductResponse"/>
</operation>
<operation name="PlaceOrder">
<input message="tns:PlaceOrderRequest"/>
<output message="tns:PlaceOrderResponse"/>
</operation>
</portType>
<binding name="ECommerceServiceSoapBinding" type="tns:ECommerceServicePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="GetProduct">
<soap:operation soapAction="http://example.com/ecommerce/GetProduct"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="PlaceOrder">
<soap:operation soapAction="http://example.com/ecommerce/PlaceOrder"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="ECommerceService">
<port name="ECommerceServicePort" binding="tns:ECommerceServiceSoapBinding">
<soap:address location="http://example.com/ecommerce/service"/>
</port>
</service>
</definitions>Dalam contoh layanan web e-commerce yang kompleks ini, dapat diamati bahwa:
- Tipe data kompleks
ProductdanOrderdidefinisikan dengan elemen bersarang (sepertiProductID,ProductName, danPrice) dan urutan. - Beberapa operasi
GetProductdanPlaceOrderdidefinisikan dalamECommerceServicePortType. - Pesan
GetProductRequest,GetProductResponse,PlaceOrderRequest,PlaceOrderResponsedidefinisikan untuk setiap operasi, menentukan data masukan dan keluaran. - Binding SOAP
ECommerceServiceSoapBindingmenentukan detail pemformatan untuk komunikasi menggunakan SOAP. - Layanan
ECommerceServicememiliki port bernamaECommerceServicePortmenggunakan binding SOAP, dan alamatnya ditentukan sebagaihttp://example.com/ecommerce/service.
Mengedit Berkas WSDL Menggunakan Apidog
Karena berkas WSDL relatif umum di dunia pengembangan perangkat lunak, Anda mungkin harus mengedit atau membuatnya sendiri. Dengan banyak platform API di luar sana, Apidog adalah pilihan yang sangat baik.
Apidog memungkinkan pengembang, penyedia layanan web, dan pengguna layanan web dari berbagai latar belakang untuk membuat transisi yang mulus dari platform API lain ke Apidog.
Untungnya, Apidog juga mencakup impor berkas WSDL! Jika Anda tertarik untuk mencobanya, pastikan untuk mengunduh Apidog menggunakan tombol di bawah ini.
Jangan lupa untuk masuk dan memulai proyek baru setelah Anda masuk. Jika Anda membutuhkan bantuan, lihat Dokumen Bantuan Apidog.
Mengimpor API SOAP Anda ke Apidog dari Berkas WSDL

Setelah Anda membuka proyek baru, klik tombol "Pengaturan" pada toolbar vertikal yang terletak di sisi kiri jendela Apidog. Kemudian, klik Panah 2 dan Panah 3 dalam urutan itu.
Menguji API SOAP dengan Mudah di Apidog

Jika Anda berhasil mengimpor berkas WSDL, Anda akan melihat namanya di sisi kiri layar, seperti yang ditunjukkan di sekitar Panah 1.
Untuk mulai mengedit berkas WSDL, klik Panah 2 hingga 4 dalam urutan menaik, dan Anda siap melakukannya!
Kesimpulan
Dengan berkas WSDL berdasarkan XML (eXtensible Markup Language), sedikit lebih mudah untuk dipahami. Berkas WSDL dapat bervariasi dalam kompleksitas tergantung pada seberapa spesifik deskripsi dan fungsionalitas layanan web.



