Perbedaan antara API Web dan Layanan Web?

Jawaban:

86

Layanan Web - itu standar yang ditentukan oleh W3C, sehingga mereka dapat diakses secara semi-otomatis atau otomatis (WSDL / UDDI). Semuanya didasarkan pada XML, jadi siapa pun bisa menyebutnya. Dan setiap aspek layanan didefinisikan dengan sangat baik. Ada standar deskripsi parameter, standar melewati parameter, standar respons, standar penemuan, dll. Anda mungkin bisa menulis buku 2000 halaman yang akan menggambarkan standar. Bahkan ada beberapa standar "tambahan" untuk melakukan hal-hal "standar", seperti otentikasi.

Terlepas dari kenyataan bahwa pemanggilan dan penemuan otomatis hampir tidak berfungsi karena klien agak miskin, dan Anda tidak memiliki jaminan nyata bahwa layanan apa pun dapat dipanggil dari klien mana pun.

API Web biasanya dilakukan sebagai HTTP / REST, tidak ada yang didefinisikan, output bisa untuk misalnya. JSON / XML, input dapat berupa XML / JSON / atau data biasa. Tidak ada standar untuk apa pun => tidak ada panggilan dan penemuan otomatis. Anda dapat memberikan beberapa deskripsi dalam file teks atau PDF, Anda dapat mengembalikan data di Windows-1250 alih-alih unicode, dll. Untuk mendeskripsikan standar, brosur 2 halaman dengan beberapa info sederhana dan Anda akan menentukan segalanya.

Web beralih ke API / REST Web. Layanan Web benar-benar tidak lebih baik dari API Web. Sangat rumit untuk dikembangkan dan mereka memakan lebih banyak sumber daya (bandwidth dan RAM) ... dan karena semua konversi data (REQUEST-> XML-> DATA-> RESPONSE-> XML-> VALIDATION-> CONVERSION-> DATA) sangat lambat.

Misalnya. Di WebAPI Anda dapat mengemas data, mengirimnya terkompresi dan un-kompres + un-pack pada klien. Dalam SOAP Anda hanya bisa mengompresi permintaan HTML.

Slawek
sumber
1
terima kasih @Sekek, kamu menjelaskannya dengan lebih baik..dan terima kasih untuk contohnya juga ...
Harish Kurup
2
Pada kenyataannya saya mendengar orang menyebut SOAP dan REST sebagai "layanan web". API Web memang cenderung REST.
Ben Thurley
@ Lawek, cara Anda mengatakannya 2.000 halaman vs beberapa halaman, itu sendiri menjelaskan kompleksitas berkurang. Cara yang baik untuk mengatakannya secara sederhana ..
Jaqen H'ghar
20

Layanan web memungkinkan komunikasi antar mesin ke HTTP. API web adalah bagian dari layanan web yang menggunakan konvensi REST (Merangkum artikel Wikipedia ). Konsepnya jelas tumpang tindih. Saya percaya bahwa masih ada tautan di benak kebanyakan orang tentang layanan web -> SOAP / XML-RPC yang dapat membingungkan hal-hal yang tidak perlu.

Pada akhirnya, Anda harus mengajukan beberapa pertanyaan untuk mengklarifikasi apa yang dimaksud orang. Tidak semua orang membuat perbedaan atau menggunakan istilah secara bergantian.

Berin Loritsch
sumber
Terima kasih @Berin Loritsch, ya itu benar itu menyebabkan kebingungan antara API dan WS ..
Harish Kurup
6

Layanan web adalah arsitektur yang didefinisikan dan pendekatan ke domain masalah seperti yang dinyatakan oleh W3C .

Layanan Web menyediakan sarana standar untuk beroperasi di antara berbagai aplikasi perangkat lunak, berjalan pada berbagai platform dan / atau kerangka kerja

Web API adalah sebuah konsep dan abstrak cara tentang bagaimana konsep tersebut diimplementasikan.

Dalam istilah awam ... API web adalah untuk motor sedangkan WS adalah untuk BMW N53 .

Aaron McIver
sumber