Application Programming Interface atau API merupakan sebuah interface yang berperan untuk menghubungkan suatu aplikasi/mesin dengan aplikasi/mesin lainnya. API berfungsi untuk memudahkan kerja developer dalam mengembangkan software.
Web services adalah layanan API berbasis web, yaitu menggunakan protokol http atau ftp.
Layanan web memiliki antarmuka, yang menyembunyikan detail implementasi sehingga dapat digunakan secara terpisah dari platform perangkat keras atau perangkat lunak yang digunakannya, dan secara terpisah dari bahasa pemrograman yang digunakan.
Kemandirian ini mendorong aplikasi berbasis layanan web untuk loosely coupled, berorientasi komponen, implementasi lintas-teknologi. Layanan web dapat digunakan sendiri atau dengan layanan web lainnya untuk melakukan agregasi kompleks atau transaksi bisnis.
Sebuah Web service dapat didefinisikan sebagai berikut :
- Aplikasi client-server atau komponen aplikasi untuk komunikasi.
- Metode komunikasi antara dua perangkat melalui jaringan.
- Sistem perangkat lunak untuk komunikasi antar mesin ke mesin.
- Kumpulan standar atau protokol untuk bertukar informasi antara dua perangkat atau aplikasi.
Seperti yang terlihat pada gambar diatas, aplikasi Java, .net, dan PHP dapat berkomunikasi dengan aplikasi lain melalui layanan web melalui jaringan. Misalnya, aplikasi Java dapat berinteraksi dengan aplikasi Java, .Net, dan PHP. Jadi layanan web adalah cara komunikasi bahasa yang independen.
Jenis-jenis Web Services
Pada umumnya ada 2 jenis web services.
- SOAP web services
- RESTful web services
SOAP Web Services
SOAP, memiliki kepanjangan Simple Object Access Protocol, adalah sebuah spesifikasi protokol untuk pertukaran pesan/informasi terstruktur dalam implementasi web servis di jaringan komputer. SOAP menggunakan Extensible Markup Language (XML) sebagai format pesannya, dan biasanya bergantung pada protokol layer aplikasi lainnya, terutama Hypertext Transfer Protocol (HTTP) dan Simple Mail Transfer Protocol (SMTP), untuk transmisi dan negosiasi pesan.
REpresentational State Transfer (REST) adalah sebuah arsitektur software untuk sistem terdistribusi semisal web. REST telah berkembang sebagai model desain web servis yang dominan saat ini. Istilah representational state transfer dikenalkan dan didefinisikan pada tahun 2000 oleh Roy Fielding dalam desertasi doktoralnya. Beliau merupakan salah satu penulis utama spesifikasi HTTP versi 1.0 dan 1.1. Sesuai konstrainnya, REST biasa disebut dengan “RESTful”.
Perbedaan SOAP dan REST
Uraian | SOAP | REST |
Protokol komunikasi | HTTP, HTTPS, SMTP, FTP | HTTP, HTTPS |
Penggunaan bandwidth | Dalam jumlah request yang banyak, relatif boros bandwidth. Hal ini karena banyaknya markup dalam penulisan format XML | Relatif hemat bandwidth, karena markup-markup ekstra seperti pada XML tidak dipakai |
Tren penggunaan | Banyak mulai beralih ke REST, meski masih tetap ada yang mempertahankan, misalnya untuk integrasi aplikasi ke sistem legasi pada sebuah perusahaan. | Mulai populer, banyak dipakai oleh penyedia web servis terkemuka, seperti twitter, yahoo!, flickr,bloglines, technorati, google, amazon, eBay, dsb |
Aturan penulisan | Ketat, mengikuti spesifikasi XML (SOAP v1.2) | Tidak ada spesifikasi khusus |
Format respon | XML dengan spesifikasi SOAP. Agak sulit bagi kita untuk membaca langsung dan memahaminya. | XML, JSON, atau format plain teks lainnya. Hal ini memudahkan penerima respon membaca dan memahaminya. |
Attachment file | Bisa (karena dapat mengembalikan respon dalam format binary) | Tidak bisa |
Sifat web servis pada umumnya | Tertutup, lebih ditujukan untuk vendor atau perusahaan tertent | Terbuka, bisa diakses siapa saja |
Caching web | Relatif sulit | Mudah, karena menggunakan URI |
Penggunaan standar | Standar lama (XML, HTTP) dan baru (SOAP) digunakan bersamaan | Standar yang sudah ada, seperti XML dan HTTP |
Tool pengembangan | Banyak, baik komersial maupun opensource | Beberapa, karena tidak begitu dibutuhkan |
Tool manajemen | Perlu, bahkan kadang harganya mahal | Menggunakan tool yang sudah ada pada sistem jaringan |
Ekstensibel | Bisa, banyak ekstensi termasuk standar WS-* | Relatif tidak ekstensibel |
Kemudahan implementasi | Mudah jika kita sudah memiliki lingkungan berbasis SOAP | Mudah |
Daftar Pustaka
https://socs.binus.ac.id/2019/12/26/pengenalan-web-services/