Adakah anda mahu memautkan apl anda ke Facebook supaya ia boleh menjana siaran secara automatik, atau ke Instagram supaya anda boleh menyiarkan semula foto dengan hashtag tertentu?
Anda juga boleh ingin memasukkan video YouTube di tapak web anda. Antara muka pengaturcaraan aplikasi membolehkan anda melaksanakan semua tugas ini dan banyak lagi (API).
Aplikasi yang berbeza boleh "bercakap" antara satu sama lain dengan cara yang selamat dan standard terima kasih kepada API seperti API Instagram, API Facebook dan API YouTube.
Dalam erti kata lain, program boleh mengambil ciri atau data daripada perisian lain dan menggunakannya untuk meningkatkan ciri atau pengalaman penggunanya sendiri. Tetapi bagaimanakah apl boleh membuat permintaan ini, memprosesnya dan membalasnya dengan cara yang boleh difahami oleh orang lain?
Itu bergantung pada cara API dicipta. Apabila membincangkan reka bentuk API (antara muka pengaturcaraan aplikasi), adalah biasa untuk membandingkan SOAP vs. REST, dua daripada paradigma API yang paling menonjol.
Sebaik sahaja API SOAP (Simple Object Access Protocol) menjadi standard emas untuk firma seperti Oracle, Sun dan PayPal, terdapat tindak balas yang sama dan bertentangan setahun atau lebih kemudian terhadap API REST daripada Google, Amazon dan eBay.
Dalam siaran ini, kami akan membandingkan dan membezakan API SOAP dengan API REST supaya anda boleh memutuskan yang terbaik untuk tujuan anda.
Kami akan bermula dengan mentakrifkan API.
Apakah API?
Antara Muka Pengaturcaraan Aplikasi dirujuk sebagai API. API pada asasnya ialah koleksi kaedah dan fungsi yang membolehkan pembangunan aplikasi. Mereka mendapat akses kepada maklumat dan fungsi program, perkhidmatan atau sistem pengendalian yang berbeza.
Mereka berfungsi sebagai semacam orang tengah antara pelbagai sistem perisian. Mereka membolehkan "bercakap" antara dua program yang tidak bersambung.
Mari kita ambil contoh seorang broker saham yang terlibat secara aktif dalam perdagangan dan pasaran kewangan. Koleksi automatik algoritma perdagangan boleh disambungkan kepada platform broker dagangan kegemaran pedagang melalui API. Ini membolehkan anda, peniaga, untuk melaksanakan transaksi elektronik atau melihat sebut harga masa nyata dan data harga.
Apa itu REST?
API "perkhidmatan web" sebenar termasuk REST (Pemindahan Negeri Perwakilan). API REST dibina pada URI (Pengecam Sumber Seragam, yang mana URL adalah jenis istimewa), protokol HTTP dan format data JSON yang sangat serasi dengan penyemak imbas.
Protokol SOAP, seperti yang telah kami nyatakan, mungkin juga digunakan. REST API boleh dibuat dan berkembang dengan mudah, tetapi ia juga boleh menjadi besar dan sukar—semuanya bergantung pada cara ia dicipta, dikembangkan dan perkara yang ingin dilakukan.
Kekangan sumber, keperluan keselamatan yang dikurangkan, keserasian klien penyemak imbas, kebolehtemuan, kesihatan data dan kebolehskalaan ialah beberapa sebab anda ingin membangunkan API untuk RESTful—perkara yang benar-benar digunakan pada perkhidmatan web.
REST menawarkan pilihan yang lebih ringan. SOAP sukar digunakan dan membebankan banyak pemaju. Sebagai contoh, menggunakan SOAP dengan JavaScript memerlukan menulis banyak kod untuk menyelesaikan operasi mudah kerana struktur XML yang diperlukan mesti dibuat setiap kali.
REST (biasanya) menggunakan URL ringkas sebagai ganti permintaan XML. Walaupun terdapat keadaan yang jarang berlaku apabila anda mesti menawarkan butiran lanjut, kebanyakan perkhidmatan web RESTful hanya menggunakan teknik URL.
Empat kata kerja HTTP 1.1 GET, POST, PUT dan DELETE boleh digunakan oleh REST untuk menjalankan operasi. Tidak seperti SOAP, REST tidak memerlukan jawapan dalam XML.
Perkhidmatan web berasaskan REST yang mengeluarkan data dalam format Command Separated Value (CSV), Notasi Objek JavaScript (JSON) dan Really Simple Syndication (RSS) tersedia (RSS).
Objektifnya ialah anda boleh mendapatkan hasil yang anda perlukan dalam format yang mudah dihuraikan dalam bahasa yang anda gunakan untuk aplikasi anda.
Ciri-ciri
- REST menekankan kesederhanaan di atas segalanya, disebabkan oleh protokol HTTP.
- Web paling sesuai untuk REHAT. Ia serasi dengan penyemak imbas kerana JSON digunakan sebagai format data.
- REST terkenal dengan kebolehskalaan dan kelajuan yang luar biasa.
- Sambungan dan seni bina pelanggan-pelayan menjadi lebih mudah diakses oleh REST API. Jika ia RESTful, ia dibina menggunakan model pelayan pelanggan ini, dengan perjalanan pergi dan balik antara kedua-dua pihak menghantar muatan data.
- API REST menggunakan antara muka standard bersendirian. Memastikan semua apl bersambung secara seragam dan melalui get laluan yang sama, menyelaraskan cara aplikasi berkomunikasi dengan API.
Apa itu SABUN?
Protokolnya sendiri, dipanggil SOAP (Simple Object Access Protocol), adalah lebih rumit sedikit daripada REST kerana ia menetapkan lebih banyak piawaian, termasuk yang berkaitan dengan keselamatan dan penghantaran mesej.
Norma yang wujud ini datang dengan sedikit overhed tambahan. Walau bagaimanapun, ia boleh menjadi faktor penentu bagi perniagaan yang memerlukan keselamatan, transaksi dan keupayaan pematuhan ACID (Atomicity, Consistency, Isolation, Durability) yang lebih meluas.
Demi perbandingan ini, adalah penting untuk ambil perhatian bahawa banyak faedah SOAP tidak selalunya digunakan pada aplikasi perkhidmatan web, menjadikannya lebih sesuai untuk senario jenis perusahaan.
Tahap keselamatan yang lebih tinggi (seperti apabila a apl mudah alih berinteraksi dengan bank), apl pemesejan yang memerlukan komunikasi yang boleh dipercayai, berinteraksi dengan sistem warisan atau pematuhan ACID ialah beberapa sebab anda ingin mereka bentuk aplikasi menggunakan API SOAP.
Keupayaan pemesejan yang ditawarkan oleh SOAP adalah berdasarkan XML sepenuhnya. Teknologi lama yang tidak serasi internet seperti Model Objek Komponen Teragih (DCOM) dan Seni Bina Broker Permintaan Objek Biasa telah digantikan dengan SOAP apabila ia mula-mula dicipta oleh Microsoft (CORBA).
Pergantungan pada komunikasi binari menyebabkan sistem ini gagal. Melalui internet, pemesejan XML seperti yang digunakan oleh SOAP berfungsi dengan lebih baik.
Ciri-ciri
- Keselamatan SOAP adalah lebih ketat. WS-Security ialah standard terbina dalam yang menawarkan keupayaan keselamatan peringkat perusahaan tambahan SOAP jika diperlukan sebagai tambahan kepada sokongan SSL.
- Berjaya/cuba semula penaakulan untuk prestasi pemesejan yang boleh dipercayai. Oleh kerana REST tidak mempunyai mekanisme mesej piawai, ia hanya boleh mencuba semula apabila komunikasi gagal. Walaupun menggunakan perantaraan SOAP, SOAP menawarkan kebolehpercayaan hujung ke hujung kerana logik berjaya/cuba semula terbina dalam.
- SOAP sudah mematuhi piawaian ACID. Dengan menentukan cara transaksi boleh berinteraksi dengan pangkalan data, pematuhan ACID meminimumkan anomali dan melindungi ketekalan pangkalan data. Oleh kerana ACID lebih berhati-hati daripada model ketekalan data yang lain, ia kerap digunakan apabila menguruskan urus niaga sensitif, sama ada kewangan atau sebaliknya.
- Ia adalah mudah untuk pengaturcara memahami kerana SOAP adalah komunikasi berasaskan XML sepenuhnya.
- Protokol pemesejan XML ialah tambahan kepada protokol HTTP.
- Komunikasi dari satu komputer ke komputer lain boleh disebarkan melalui pemesejan SOAP.
- Seni bina pelayan-pelanggan juga boleh dilaksanakan. Mesej protokol SOAP boleh digunakan oleh klien untuk memanggil panggilan prosedur jauh yang terletak di sebelah pelayan.
Perbezaan REST Vs SOAP
1. seni bina
API bertujuan untuk menunjukkan komponen khusus logik perniagaan aplikasi pada pelayan. Walaupun REST menggunakan URI untuk tujuan yang sama, SOAP menggunakan Antara Muka Perkhidmatan untuk ini.
API REST dicipta selepas data, manakala API SOAP dibangunkan selepas kefungsian yang digambarkan oleh API. Berbanding SOAP, yang lebih dipacu fungsi, REST adalah reka bentuk yang lebih dipacu data.
2. Caching
Data yang telah ditandakan sebagai boleh cache boleh digunakan oleh pelayar sekali lagi tanpa memerlukan mereka membuat permintaan baharu kepada pelayan. Menjimatkan masa dan usaha adalah faedah daripada ini.
Respons tidak akan dicache pada tahap HTTP kerana pertanyaan SOAP diserahkan melalui permintaan POST, yang dianggap oleh standard HTTP sebagai bukan idempoten. Jika anda ingin menggunakan caching, anda masih mesti membina teknik yang diperlukan kerana REST API tidak menyertakan pelaksanaan ini.
3. Sumber & Lebar Jalur
Disebabkan pemindahan muatan gaya sampul surat yang digunakan oleh SOAP, terdapat peningkatan sederhana dalam overhed, yang memerlukan lebar jalur tambahan. Sifat ringan REST adalah faedah dalam situasi ini kerana ia biasanya digunakan untuk perkhidmatan web.
4. Keselamatan
WS-security, yang SOAP menyokong dan lebih teliti sedikit daripada SSL pada tahap pengangkutan, adalah wajar. Menggabungkan langkah keselamatan peringkat perusahaan dengannya juga sesuai.
Penyulitan hujung ke hujung menggunakan SSL disokong oleh SOAP dan REST, dan REST boleh menggunakan HTTPS, varian selamat protokol HTTP.
5. Mengendalikan Muatan
Data yang dihantar melalui Internet dirujuk sebagai muatan. Muatan yang dianggap "berat" memerlukan sumber tambahan. Berbanding dengan SOAP, yang menggunakan XML, REST sering menggunakan JSON dan HTTP untuk membantu mengurangkan muatan.
Pustaka Klien khusus dengan kod yang dijana biasanya mesti digunakan oleh Klien untuk mengakses SOAP API kerana kontrak komunikasinya yang sangat ketat.
Akibatnya, SOAP menawarkan tahap abstraksi yang lebih rendah daripada REST dan lebih berkait rapat dengan pelayan.
Bila hendak menggunakan REST?
- Mencipta API awam: REST API lebih disukai untuk membina perkhidmatan web awam kerana ia dilihat lebih mudah untuk digunakan dan diterima pakai berbanding SOAP API. Selain itu, SOAP menawarkan beberapa langkah keselamatan terbina dalam yang REST tidak mempunyai, walaupun ciri ini tidak diperlukan apabila bekerja dengan data dan perkhidmatan terbuka.
- Membina aplikasi mudah alih: REST sesuai untuk membina aplikasi mudah alih memandangkan ia kecil, berkesan, tanpa kewarganegaraan dan boleh disimpan dalam cache.
- Menggunakan sumber pelayan dan lebar jalur yang terhad: Semua permintaan kepada API REST mestilah tanpa kewarganegaraan, yang bermaksud bahawa setiap interaksi adalah berasingan dan setiap permintaan serta respons mengandungi semua data yang diperlukan untuk melengkapkan interaksi tersebut. Pelayan tidak menyimpan rekod permintaan sebelumnya kerana ia menganggap setiap satu sebagai permintaan baharu. Akibatnya, pelayan memerlukan lebih sedikit memori dan beroperasi dengan lebih cepat kerana permintaan tidak memerlukan tindakan lanjut atau mendapatkan semula data sejarah.
Bila nak guna SABUN?
- Mencipta API peribadi, terutamanya untuk perniagaan besar: SOAP sesuai untuk aplikasi korporat kerana ia membolehkan aliran data dalam persekitaran terpencar, teragih dan mengandungi beberapa ciri keselamatan dalam talian.
- Menggunakan protokol pengangkutan selain HTTP sebagai lapisan asas: SOAP tidak bergantung pada HTTP sebagai lapisan asas. Bergantung pada aplikasi anda, anda boleh menggunakan SMTP (Simple Mail Transfer Protocol), JMS (Java Messaging Service), atau protokol pengangkutan lain.
- Bekerja dengan operasi stateful: Berbeza dengan permintaan untuk REST API, permintaan kepada SOAP API adalah stateful, bermakna pelayan menyimpan maklumat tentang klien dan menggunakannya merentas rangkaian permintaan atau operasi. Walaupun ini menggunakan lebih lebar jalur dan sumber pelayan, ia adalah penting untuk menjalankan tindakan rutin atau terpaut, seperti pemindahan bank.
Kesimpulan
Perbandingan antara API REST dan SOAP menjadikannya agak jelas bahawa REST lebih disukai daripada SOAP. Namun begitu, terdapat situasi di mana SOAP API diperlukan. Dalam keadaan tertentu, perkhidmatan web dicipta dengan menggabungkan API REST dan SOAP.
Oleh itu, kes penggunaan akan menentukan gaya API yang akan berfungsi dengan baik.
Sila tinggalkan balasan anda