Tətbiqinizi Facebook ilə əlaqələndirmək istəyirsiniz ki, o, avtomatik olaraq yazılar yarada bilsin, yoxsa müəyyən hashtaglarla fotoşəkilləri təkrar yerləşdirə bilmək üçün Instagram-a?
Veb saytınıza YouTube videolarını da əlavə etmək istəyə bilərsiniz. Tətbiq proqramlaşdırma interfeysləri bütün bu tapşırıqları və daha çoxunu yerinə yetirməyə imkan verir (API).
Instagram API, Facebook API və YouTube API kimi API-lər sayəsində müxtəlif tətbiqlər təhlükəsiz və standartlaşdırılmış şəkildə bir-biri ilə "danışa" bilər.
Başqa sözlə, bir proqram başqa bir proqram parçasından xüsusiyyətlər və ya məlumatlar götürə və öz xüsusiyyətlərini və ya istifadəçi təcrübəsini təkmilləşdirmək üçün onlardan istifadə edə bilər. Bəs proqramlar bu sorğuları necə edə, emal edə və başqalarının başa düşəcəyi tərzdə onlara necə cavab verə bilər?
Bu, API-nin necə yaradıldığından asılıdır. API (tətbiq proqramlaşdırma interfeysi) dizaynlarını müzakirə edərkən, ən görkəmli API paradiqmalarından ikisi olan SOAP və REST-i müqayisə etmək adi haldır.
SOAP API-ləri (Sadə Obyekt Giriş Protokolu) Oracle, Sun və PayPal kimi firmalar üçün qızıl standarta çevrilən kimi, Google, Amazon və eBay-dən REST API-lərinə qarşı bir il və ya bir qədər sonra bərabər və əks cavab gəldi.
Bu yazıda biz SOAP API-lərini REST API-ləri ilə müqayisə edəcəyik ki, məqsədləriniz üçün hansının daha yaxşı olduğuna qərar verəsiniz.
API-ni təyin etməklə başlayacağıq.
API nədir?
Tətbiq Proqramlaşdırma İnterfeysi API adlanır. API-lər mahiyyətcə proqramların inkişafına imkan verən metod və funksiyalar toplusudur. Onlar müxtəlif proqramlar, xidmətlər və ya əməliyyat sistemlərinin məlumat və funksiyalarına giriş əldə edirlər.
Onlar müxtəlif proqram sistemləri arasında bir növ vasitəçi rolunu oynayırlar. Onlar iki əlaqəsiz proqram arasında "danışmağa" imkan verir.
Ticarətdə və maliyyə bazarlarında fəal iştirak edən birja brokerini misal çəkək. Avtomatlaşdırılmış kolleksiya ticarət alqoritmləri API vasitəsilə treyderin sevimli ticarət broker platformasına qoşula bilər. Bu, sizə, treyderə elektron əməliyyatlar həyata keçirməyə və ya real vaxtda kotirovkalara və qiymət məlumatlarına baxmağa imkan verir.
REST nədir?
Həqiqi "veb xidmətləri" API-lərinə REST (Representational State Transfer) daxildir. REST API-ləri URI-lər (URL xüsusi bir növ olan Vahid Resurs İdentifikatorları), HTTP protokolu və inanılmaz dərəcədə brauzerə uyğun JSON məlumat formatı üzərində qurulur.
Artıq qeyd etdiyimiz kimi, SOAP protokolu da istifadə edilə bilər. REST API-ləri yaratmaq və inkişaf etdirmək asan ola bilər, lakin onlar həm də böyük və çətin ola bilər – hər şey onların necə yaradıldığından, genişləndirilməsindən və nə etmək niyyətində olduqlarından asılıdır.
Resurs məhdudiyyətləri, azaldılmış təhlükəsizlik tələbləri, brauzer müştəri uyğunluğu, aşkar edilə bilənlik, məlumat sağlamlığı və miqyaslılıq RESTful olmaq üçün API inkişaf etdirmək istədiyiniz bəzi səbəblərdir - əslində veb xidmətlərinə tətbiq olunan şeylər.
REST daha yüngül seçim təklif edir. SOAP-dan istifadə etmək çətin və bir çox tərtibatçılar üçün ağır idi. Məsələn, JavaScript ilə SOAP-dan istifadə sadə əməliyyatları başa çatdırmaq üçün çoxlu kod yazmağı tələb edir, çünki hər dəfə lazımi XML strukturu yaradılmalıdır.
REST (adətən) XML sorğusu əvəzinə sadə URL istifadə edir. Daha çox təfərrüat təklif etməli olduğunuz nadir hallar olsa da, RESTful veb xidmətlərinin əksəriyyəti yalnız URL texnikasından istifadə edir.
Dörd HTTP 1.1 felindən GET, POST, PUT və DELETE əməliyyatları yerinə yetirmək üçün REST tərəfindən istifadə edilə bilər. SOAP-dan fərqli olaraq, REST-in XML-də olması üçün cavab lazım deyil.
Command Separated Value (CSV), JavaScript Object Notation (JSON) və Really Simple Syndication (RSS) formatlarında məlumatları çıxaran REST əsaslı veb xidmətləri mövcuddur (RSS).
Məqsəd ondan ibarətdir ki, siz ərizəniz üçün istifadə etdiyiniz dil daxilində lazım olan nəticələri təhlil etmək asan formatda əldə edə biləsiniz.
Xüsusiyyətləri
- REST HTTP protokolları sayəsində hər şeydən əvvəl sadəliyi vurğulayır.
- Veb REST üçün ən uyğundur. JSON məlumat formatı kimi istifadə edildiyi üçün brauzerlərlə uyğun gəlir.
- REST əla miqyaslılığı və sürəti ilə tanınır.
- Müştəri-server əlaqələri və arxitekturaları REST API-ləri tərəfindən daha əlçatan edilir. Əgər o RESTfuldursa, o, bu müştəri-server modelindən istifadə etməklə qurulur, iki tərəf arasında gediş-gəliş məlumat yüklərini ötürür.
- REST API-ləri tək standart interfeysdən istifadə edir. Bütün tətbiqlərin vahid şəkildə və eyni şlüz vasitəsilə qoşulmasını təmin etmək, tətbiqlərin API ilə əlaqəsini asanlaşdırır.
SOAP nədir?
Onun SOAP (Simple Object Access Protocol) adlanan protokolu REST-dən bir az daha mürəkkəbdir, çünki o, təhlükəsizlik və mesajların çatdırılması ilə bağlı olanlar da daxil olmaqla daha çox standartı müəyyən edir.
Bu xas normalar bir az əlavə yüklə gəlir. Bununla belə, onlar daha geniş təhlükəsizlik, əməliyyat və ACID (Atomluq, Davamlılıq, İzolyasiya, Davamlılıq) uyğunluq imkanlarına ehtiyacı olan bizneslər üçün həlledici amil ola bilər.
Bu müqayisə üçün qeyd etmək lazımdır ki, SOAP-ın bir çox üstünlükləri tez-tez veb-xidmət proqramlarına tətbiq edilmir və bu, onları müəssisə tipli ssenarilər üçün daha uyğun edir.
Daha yüksək təhlükəsizlik dərəcələri (məsələn, a mobil app bankla qarşılıqlı əlaqə yaradır), etibarlı ünsiyyət tələb edən mesajlaşma proqramları, köhnə sistemlərlə qarşılıqlı əlaqə və ya ACID uyğunluğu SOAP API-dən istifadə edən proqram dizayn etmək istədiyiniz bir neçə səbəbdir.
SOAP-ın təklif etdiyi mesajlaşma imkanları tamamilə XML-ə əsaslanır. Paylanmış Komponent Obyekt Modeli (DCOM) və Ümumi Obyekt Sorğu Broker Arxitekturası kimi köhnə internetə uyğun gəlməyən texnologiyalar Microsoft (CORBA) tərəfindən ilk dəfə yaradılarkən SOAP ilə əvəz edilmişdir.
Binar kommunikasiyalara etibar bu sistemlərin sıradan çıxmasına səbəb olur. İnternet üzərindən SOAP tərəfindən istifadə edilən XML mesajlaşma daha yaxşı işləyir.
Xüsusiyyətləri
- SOAP-ın təhlükəsizliyi əhəmiyyətli dərəcədə daha sərtdir. WS-Security, SSL dəstəyinə əlavə olaraq lazım olduqda SOAP-a əlavə korporativ səviyyəli təhlükəsizlik imkanları təklif edən daxili standartdır.
- Etibarlı mesajlaşma performansı üçün uğurlu/yenidən düşünmə. REST-in standartlaşdırılmış mesaj mexanizmi olmadığı üçün o, yalnız rabitə uğursuz olduqda təkrar cəhd edə bilər. SOAP ara məhsullarından istifadə edərkən belə, SOAP daxili uğurlu/yenidən cəhd məntiqinə görə uçdan-uca etibarlılıq təklif edir.
- SOAP artıq ACID standartlarına uyğundur. Əməliyyatların verilənlər bazası ilə necə qarşılıqlı əlaqədə ola biləcəyini diktə etməklə, ACID uyğunluğu anomaliyaları minimuma endirir və verilənlər bazasının ardıcıllığını qoruyur. ACID digər məlumat ardıcıllığı modellərinə nisbətən daha ehtiyatlı olduğundan, maliyyə və ya başqa cür həssas əməliyyatları idarə edərkən tez-tez istifadə olunur.
- SOAP tamamilə XML əsaslı ünsiyyət olduğundan proqramçılar üçün bunu başa düşmək asandır.
- XML mesajlaşma protokolu HTTP protokoluna əlavədir.
- Bir kompüterdən digər kompüterlərə rabitə SOAP mesajlaşması vasitəsilə yayıla bilər.
- Müştəri-server arxitekturası da həyata keçirilə bilər. SOAP protokol mesajı müştəri tərəfindən server tərəfində yerləşən uzaq prosedur çağırışına zəng etmək üçün istifadə edilə bilər.
REST Vs SOAP fərqləri
1. memarlıq
API ilk növbədə serverdəki tətbiqin biznes məntiqinin xüsusi komponentlərini göstərmək üçün nəzərdə tutulub. REST eyni məqsəd üçün URI-lərdən istifadə edərkən, SOAP bunun üçün Xidmət İnterfeyindən istifadə edir.
REST API-ləri verilənlərdən sonra yaradılır, SOAP API isə API-nin təsvir etdiyi funksiyalardan sonra hazırlanır. Daha çox funksiyaya əsaslanan SOAP ilə müqayisədə REST daha çox verilənlərə əsaslanan dizayndır.
2. Caching
Keşlənə bilən kimi qeyd edilmiş məlumatlar brauzerlər tərəfindən serverə yeni sorğu tələb etmədən yenidən istifadə edilə bilər. Vaxta və səyə qənaət bunun faydasıdır.
SOAP sorğuları HTTP standartının qeyri-idempotent hesab etdiyi POST sorğuları vasitəsilə təqdim edildiyi üçün cavablar HTTP səviyyəsində keşlənməyəcək. Keşləmə tətbiq etmək istəyirsinizsə, REST API-lərinə bu tətbiqi daxil etmədiyi üçün hələ də lazımi texnikaları qurmalısınız.
3. Resurslar və Bant genişliyi
SOAP tərəfindən istifadə edilən zərf tipli faydalı yük ötürülməsi səbəbindən, əlavə ötürmə qabiliyyəti tələb edən yerüstü xərclərdə təvazökar artım var. REST-in yüngül təbiəti bu vəziyyətlərdə üstünlükdür, çünki o, ümumiyyətlə veb xidmətləri üçün istifadə olunur.
4. Təhlükəsizlik
SOAP-ın dəstəklədiyi və nəqliyyat səviyyəsində SSL-dən bir qədər daha hərtərəfli olan WS-təhlükəsizliyi arzuolunandır. Müəssisə səviyyəsində təhlükəsizlik tədbirlərini onunla birləşdirmək də mükəmməl uyğun gəlir.
SSL istifadə edərək uçdan-uca şifrələmə həm SOAP, həm də REST tərəfindən dəstəklənir və REST HTTP protokolunun təhlükəsiz variantı olan HTTPS-dən istifadə edə bilər.
5. Faydalı yüklərin idarə edilməsi
İnternet vasitəsilə ötürülən məlumatlara faydalı yük deyilir. “Ağır” hesab edilən faydalı yükə əlavə resurslar lazımdır. XML-dən istifadə edən SOAP ilə müqayisədə REST tez-tez yükü azaltmaq üçün JSON və HTTP-dən istifadə edir.
Yaradılmış kodu olan ixtisaslaşmış Müştəri kitabxanası, son dərəcə ciddi rabitə müqaviləsinə görə SOAP API-lərinə daxil olmaq üçün adətən Müştəri tərəfindən istifadə edilməlidir.
Nəticədə, SOAP REST-dən daha az abstraksiya səviyyəsini təklif edir və serverlə daha sıx bağlıdır.
REST nə vaxt istifadə edilməlidir?
- İctimai API-lərin yaradılması: REST API-lərinə ictimai veb xidmətləri yaratmaq üçün üstünlük verilir, çünki onların istifadəsi və qəbulu SOAP API-lərdən daha sadədir. Əlavə olaraq, SOAP REST-də olmayan bir neçə daxili təhlükəsizlik tədbirləri təklif edir, baxmayaraq ki, açıq məlumat və xidmətlərlə işləyərkən bu xüsusiyyətlər tələb olunmur.
- Mobil proqramların qurulması: REST kiçik, effektiv, vətəndaşlığı olmayan və yaddaş yaddaşına malik olduğundan mobil proqramlar yaratmaq üçün mükəmməldir.
- Qıt server resurslarından və bant genişliyindən istifadə: REST API-yə edilən bütün sorğular vətəndaşlığı olmayan olmalıdır, bu o deməkdir ki, hər bir qarşılıqlı əlaqə ayrıdır və hər sorğu və cavab həmin qarşılıqlı əlaqəni tamamlamaq üçün lazım olan bütün məlumatları ehtiva edir. Server əvvəlki sorğuların qeydlərini saxlamır, çünki hər birinə təzə sorğu kimi baxır. Nəticədə, server daha az yaddaş tələb edir və daha tez işləyir, çünki sorğu əlavə fəaliyyət və ya tarixi məlumatların axtarışını tələb etmir.
SOAP nə vaxt istifadə edilməlidir?
- Xüsusilə böyük bizneslər üçün şəxsi API-lərin yaradılması: SOAP korporativ proqramlar üçün mükəmməldir, çünki o, mərkəzləşdirilməmiş, paylanmış mühitdə məlumat axını təmin edir və bir neçə onlayn təhlükəsizlik xüsusiyyətlərini ehtiva edir.
- Əsas qat kimi HTTP-dən başqa nəqliyyat protokolundan istifadə: SOAP əsas qat kimi HTTP-dən asılı deyil. Tətbiqinizdən asılı olaraq siz SMTP (Sadə Poçt Transfer Protokolu), JMS (Java Mesajlaşma Xidməti) və ya başqa nəqliyyat protokolundan istifadə edə bilərsiniz.
- Dövlət əməliyyatları ilə işləmək: REST API-lərinə edilən sorğulardan fərqli olaraq, SOAP API-lərinə edilən sorğular status xarakterlidir, yəni server müştəri haqqında məlumatı saxlayır və ondan sorğular və ya əməliyyatlar zəncirində istifadə edir. Bu, daha çox server bant genişliyi və resurslardan istifadə etsə də, bank köçürmələri kimi adi və ya əlaqəli əməliyyatların həyata keçirilməsi üçün çox vacibdir.
Nəticə
REST və SOAP API-lərinin müqayisəsi REST-in SOAP-a üstünlük verdiyini tamamilə aydın edir. Hətta hələ də SOAP API tələb olunan vəziyyətlər var. Müəyyən hallarda veb xidmətləri REST və SOAP API-lərini birləşdirərək yaradılır.
Buna görə də, istifadə halı hansı API üslubunun ən yaxşı işləyəcəyini müəyyən edəcəkdir.
Cavab yaz