SOAP vs REST (fərqlər)

SOAP və REST arasında bir web xidmət rabitəsi protokolu olaraq fərqlər haqqında məqalələr oxudum, ancaq SOAP üçün ən böyük fayda SOAP-a aiddir:

  • REST daha dinamikdir, UDDI yaratmaq və yeniləməyə ehtiyac yoxdur.

  • REST XML ilə məhdudlaşmır. REST web xidmətləri düz mətn, JSON və həmçinin XML göndərə bilər.

Lakin SOAP daha standartlaşdırılır (Ex, təhlükəsizlik).

Beləliklə, mən bu nöqtələrdə düzgünəm?

813
10 нояб. Abdulaziz tərəfindən təyin olunan 10 noyabr. 2013-11-10 02:11 '13 at 2:11 2013-11-10 02:11
@ 12 cavab

Təəssüf ki, REST-də bir çox misinformation və yanlış fikir var. Yalnız sualınız və @ cmd cavabları onları əks etdirmir, lakin yığın daşımasında mövzu ilə bağlı olan sual və cavabların əksəriyyəti.

SOAP və REST birbaşa müqayisə edilə bilməz, çünki birinci protokol (və ya ən azı çalışır) və ikincisi memarlıqdır. Bu, ehtimal ki, ətrafdakı qarışıqlıq mənbələrindən biridir, çünki insanlar odur ki, SOAP deyil hər HTTP API deyirlər.

Sadə bir şeyləri təşviq etmək və bir müqayisə qurmağa çalışarkən, SOAP və REST arasındakı əsas fərq, müştəri və server tətbiqləri arasında qarşılıqlı təsir dərəcəsi. SOAP müştərisi, serverlə yaxından əlaqəli xüsusi masa üstü proqramı kimi işləyir. Müştəri ilə server arasındakı çətin bir müqavilə var və hər hansı bir şey bir şey dəyişirsə hər şeyin pozulması gözlənilir. Hər hansı bir dəyişiklikdən sonra daimi yeniləmələrə ehtiyacınız var, ancaq müqavilənin hörmətə məruz qaldığını anlamaq daha asandır.

REST müştərisi bir brauzer kimi daha çoxdur. Protokol və standart üsullardan necə istifadə edəcəyini bilən birgə bir müştəridir və tətbiq bununla uyğun olmalıdır. Protokolun standartlarını pozmur, əlavə metodlar yaratırsınız, standart metodlardan istifadə edirsiniz və medianın tipinə görə onlarla birlikdə hərəkətlər yaradırsınız. Düzgün işlər görsəniz, daha az əlaqələr var və dəyişikliklər daha zərif şəkildə işlənə bilər. Müştərinin giriş nöqtəsi və media növü istisna olmaqla API-yı sıfır bilməsi ilə REST xidmətinə daxil olmağı qəbul edilir. Bir SOAP-da müştəri istifadə edəcəyi hər şey haqqında əvvəlki məlumatlara ehtiyac duyur və ya hətta qarşılıqlı fəaliyyətə başlaya bilməz. Bundan əlavə, REST müştərisi serverin özü tərəfindən verilən istək-istək kodu ilə uzadıla bilər, klassik bir nümunə, müştərinin digər xidməti ilə qarşılıqlı əlaqəni nəzarət etmək üçün istifadə olunan JavaScript kodudur.

REST'in nə olduğunu və SOAP'dan necə fərqləndiyini anlamaq üçün bu mühüm məqamlar olduqlarını düşünürəm:

  • REST protokol müstəqildir. HTTP ilə əlaqəli deyil. Bir web saytında bir ftp linki təqib edə biləcəyiniz ölçüdə, bir REST tətbiqi standart URI sxeminin olduğu hər hansı bir protokoldan istifadə edə bilər.

  • REST, HTTP metodlarına CRUD Xəritəçəkmə deyil. Bunun ətraflı izahı üçün bu cavabı oxuyun.

  • REST istifadə etdiyiniz hissələri kimi standartlaşdırılır. HTTP təhlükəsizliyi və autentifikasiya standartlaşdırılıb, beləliklə HTTP üzərində REST istifadə edirsiniz.

  • REST hipermediaHATEOAS olmadan REST deyil. Bu, müştəri yalnız giriş nöqtəsinin URI-ni bildiyini və resursların müştərinin təqib etməsi lazım olan əlaqələri qaytarması deməkdir. REST API'sində edə biləcəyiniz hər şey üçün URI nümunələrini təmin edən bu xülya sənədləşmə generatorları tamamilə nəzərə alınmır. Yalnız standarta uyğun olması lazım olan sənədləri deyil, ancaq bunu etdiyiniz zaman müştərini API inkişafında müəyyən bir nöqtə ilə əlaqələndirirsiniz və API ilə bağlı dəyişikliklər sənədləşdirilməlidir və tətbiq olunmalıdır və ya pozulacaqdır.

  • REST veb saytının memarlıq üslubudur. Stack Overflow'a daxil olduğunuzda, İstifadəçinin nə olduğunu bilirsinizsə, sual və cavabınız varsa, media növlərini bilirsiniz və veb sayt sizə onlara keçid verir. REST API eyni olmalıdır. İnsanlar İnterneti düşündüyü kimi stackoverflow.com/questions/<id> lazım olan suallar və cavablarla əlaqəli bir ana səhifəyə malik stackoverflow.com/questions/<id> URI-i almaq üçün lazım olan sualları görmək üçün statik sənədlərə stackoverflow.com/questions/<id> , sorunu with.exe ilə dəyişdirin və brauzerinizə yapışdırın. Bu cəfəngiyatdır, lakin çoxları REST hesab edirlər.

Bu son nöqtəni kifayət qədər vurğulamaq mümkün deyil. Müştəriləriniz sənədlərin şablonlarından URI yaratdıqda və resurs görünümlərində istinadlar almırsa, bu REST deyil. REST'in yazarı Roest Fielding, bu blog yazısını aydın etdi: REST API'sı hipertext əsaslı olmalıdır .

Yuxarıdakılara əsasən, REST XML ilə məhdudlaşmayaraq, başqa formatlarla düzgün işləməyinizə baxmayaraq, əlaqələriniz üçün bir format hazırlamaq və standartlaşdırmaq lazımdır. Hyperlinks XML-də standartdır, lakin JSON-da deyil. JSON üçün standartlar standartları var, məsələn HAL .

Nəhayət, REST hər kəs üçün deyildir və bunun əksini insanlar səhvən REST çağırır və heç bir zaman getməyən HTTP API ilə problemlərini çox yaxşı həll edir. Bəzən REST xüsusilə başlanğıcda baş vermək çətindir, ancaq asanlıqla server tərəfinin inkişafı və müştəri möhkəmliyini dəyişmək üçün zaman keçdikcə ödəyir. Tez və asanlıqla bir şey etmək lazımdırsa, doğru REST almaqdan narahat olmayın. Bu, yəqin ki, aradığınız şey deyildir. Əgər il ərzində, hətta onilliklərdə online qalmaq lazımdır bir şey lazımdır, onda REST sizin üçündür.

1245
10 нояб. Cavab Pedro Werneck tərəfindən verildi 10 Noyabr. 2013-11-10 03:45 '13 saat 03:45 'da 2013-11-10 03:45

REST vs SOAP doğru sual deyil.

REST , SOAP dan fərqli olaraq bir protokol deyil.

REST , proqram əsasında şəbəkə memarlarının memarlıq üslub və dizaynıdır.

REST konsepsiyaları resurslar deyilir. Resurs təqdimatı qeyri-aktiv olmalıdır. Bəzi media vasitəsi ilə təqdim olunur. Media növlərinin bəzi nümunələri XML , JSONRDF . Resurslar komponentlər tərəfindən idarə olunur. Komponentlər standart birləşdirilmiş interfeys vasitəsilə resursları tələb edir və idarə edir. HTTP halda, bu interfeys, məsələn, standart HTTP əməliyyatlarından ibarətdir. GET , PUT , POST , DELETE .

Sual

@Abdulaziz, RESTHTTP nin tez-tez tandemdə istifadə olunduğunu əhatə edir. Bu, əsasən, HTTP-nin sadəliyini və onun təbii Xəritəçəkməini RESTFUL prinsipləri ilə bağlıdır.

Əsas REST prinsipləri

Müştəri server rabitəsi

Müştəri-server mimarileri problemlərin çox dəqiq bir şəkildə ayrılmasına səbəb olur. RESTful üslubunda yaradılan bütün ərizələr prinsipial olaraq müştəri-server olmalıdır.

Vətənsiz

border=0

Serverin hər bir müştəri sorğusu onun vəziyyətinin tam şəkildə göstərilməsini tələb edir. Server, hər hansı bir server vəziyyəti və ya server iclas vəziyyəti istifadə etmədən müştəri tələbini tam başa düşməlidir. Bundan budur ki, bütün dövlət müştəridə saxlanılmalıdır.

Cacheable

Önbelleğe alınmış məhdudiyyətlər cavab verilərini önbellekli və ya qeyri-cacheable olaraq təyin etmək üçün istifadə edilə bilər. Önbellekli olaraq qeyd olunan hər hansı bir məlumat, eyni sonrakı sorğuya cavab olaraq təkrar istifadə edilə bilər.

Uniforma interfeysi

Bütün komponentlər bir vahid interfeys vasitəsilə qarşılıqlı olmalıdır. Bütün komponentlərin qarşılıqlı əlaqəsi bu interfeysdən ibarət olduğundan, müxtəlif xidmətlərlə qarşılıqlı əlaqə çox sadədir. İnterfeys eyni! Bu, həmçinin həyata keçirilmə dəyişikliklərinin təcrid olunmasında da deməkdir. Belə dəyişikliklər əsas komponentlərin qarşılıqlı təsirinə səbəb olmayacaq, çünki vahid interfeys həmişə eynidır. Diqqətlərin bir hissəsi siz interfeysdə sıxışdığınızdır. İnteqrasiya interfeysini dəyişdirərək xüsusi bir xidmətə təqdim oluna bilərsə, REST bunu inkar etdiyinə görə uğursuzluqdan qaçın. Lakin, parlaq tərəfdə, REST İnternet üçün optimallaşdırılmışdır, beləliklə HTTP üzərində REST inanılmaz populyarlıq!

Yuxarıda göstərilən anlayışlar REST-in müəyyən xüsusiyyətləridir və REST mimarisini web xidmətləri kimi digər mimarlardan ayırır. REST xidmətinin bir web xidməti olduğunu qeyd etmək faydalıdır, lakin web xidməti mütləq REST xidməti deyildir.

REST və yuxarıda göstərilən güllələr haqqında daha ətraflı məlumat üçün REST Design Prinsiplərində bu blog yazısına baxın.

EDIT: şərhlərə əsaslanan məzmunu yeniləyin

207
10 нояб. Cavab 10 noyabrda cmd verilir. 2013-11-10 02:19 '13 at 2:19 2013-11-10 02:19

SOAP ( Simple Object Access Protocol ) və REST ( View State Transfer ) özləri də gözəldir. Ona görə də onları müqayisə etmirəm, əvəzində mən REST və SOAP istifadə etməyi üstün tutarkən bir şəkil təsvir etməyə çalışıram.

Payload nədir?

Məlumat internet üzərindən ötürüldükdə ötürülən hər bir blok həm başlıq məlumatlarını, həm də göndərilən faktiki məlumatları ehtiva edir. Mövzu, paketin qaynağı və təyinatını müəyyənləşdirir, əsl məlumat isə yüklənmə yükü deyilir . Ümumiyyətlə, yüklənmə ərizə və təyinat sistemi tərəfindən alınan məlumatlar üçün ötürülən məlumatlardır.

İndi, məsələn, bir teleqram göndərmək məcburiyyətindəyəm və hamımız bilirik ki, bir telgrafın dəyəri sözlərin sayından asılı olacaq.

Yəni göndərmək daha ucuz olan aşağıda göstərilən iki mesaj arasında mənə deyin?

 <name>Arin</name> 

və ya

 "name": "Arin" 

Bilinirəm ki, cavabınız ikinci olacaq, baxmayaraq ki, həmin ikinci mesajı təmsil edənlər, xərcləri baxımından ucuzdurlar.

Beləliklə, Json formatında şəbəkə üzərindən məlumatların göndərilməsi Xml formatında göndərmə yükündən daha ucuz olduğunu söyləmək üçün çalışıram.

SOAP-ın SOAP-ın ilk üstünlüyü və üstünlükləri . SOAP yalnız XML-ni dəstəkləyir, lakin REST mətn, JSON, XML və s. Kimi müxtəlif formatları dəstəkləyir. Zaten bilirik ki, Json'ı kullanırsak, kesinlikle yük payı açısından en yaxşı yerde olacağız.

İndi SOAP yalnız XML-ni dəstəkləyir, həm də onun üstünlükləri var.

Həqiqətən! Nasıl?

SOAP XML-yə üç yolla istinad edir: Zarf - mesajda olanları və onu necə idarə edə biləcəyini müəyyən edir.

Veri tipləri üçün kodlaşdırma qaydaları və nəhayət, prosedurların düzəldilməsi və cavabları.

Bu zərf nəql (HTTP / HTTPS) vasitəsilə göndərilir və RPC (Remote Procedure Call) yerinə yetirilir və zərf XML sənədində məlumat ilə qaytarılır.

Burada qeyd etmək vacibdir ki , SOAP-ın üstünlüklərindən biri "generic" istifadə edir , lakin REST HTTP / HTTPS istifadə edir, SOAP sorğu göndərmək üçün demək olar ki, heç bir nəqliyyat vasitəsini istifadə edə bilər, lakin REST mümkün deyil. Beləliklə, biz SOAP istifadə üstünlüyümüz var.

Əvvəlki bənddə qeyd etdiyim kimi, "REST HTTP / HTTPS istifadə edir" , belə ki, bu sözlər daha dərin olsun.

HTTP üzərində REST haqqında söhbət edərkən istifadə olunan bütün HTTP təhlükəsizlik tədbirləri devralır və bu, nəqliyyat səviyyəli təhlükəsizlik deyilir və yalnız güclü içərisində mesajlar qoruyur, ancaq bir tərəfdən onu digər tərəfdən çatdırdığınızda, həqiqətən, məlumatların işləniləcəyi real nöqtəyə çatmadan əvvəl nə qədər mərhələdən keçdiyini bilmirsiniz. Və əlbəttə ki, bütün bu mərhələlər HTTP-dən başqa bir şey istifadə edə bilər. Beləliklə, istirahət tamamilə təhlükəsiz deyil, yoxsa?

Lakin SOAP əlavə olaraq REST kimi SSL -ni dəstəkləyir , həmçinin bir sıra müəssisə təhlükəsizlik xüsusiyyətləri əlavə edən WS-Security-i də dəstəkləyir . WS-Security , istehlakdan əvvəl bir mesaj yaratmaqdan qorunması təmin edir. Beləliklə, təhlükəsizlik səviyyəsində təhlükəsizlik səviyyəsində tapdığımız boşluqlardan asılı olmayaraq, WS-Security istifadə edərək önlənə bilər.

Bundan əlavə, REST HTTP protokolu ilə məhdudlaşdığından , onun əməliyyat dəstəyi ASİD tələblərinə uyğun deyil və paylanmış transmilli resurslar vasitəsilə iki mərhələli öhdəlik vermir.

Lakin SOAP uzun müddətli əməliyyatlar üçün qısamüddətli əməliyyatlar və kompensasiyaya əsaslanan əməliyyatların idarə edilməsi üçün ACID bazlı əməliyyatın idarə olunması üçün hərtərəfli dəstəyə malikdir. Həm də paylanmış resurslarla bifazik qəbulu dəstəkləyir.

Mən heç bir nəticə vermirəm, amma mən əminəm ki, SOAP-a əsaslanan bir web xidməti, təhlükəsizlik, əməliyyat, və s. əsas məsələlərdir.

Aşağıdakı şərtlər yerinə yetirildiyi təqdirdə RESTful Design'un müvafiq ola biləcəyi deyilən Java EE 6 Tutorial burada. Bir göz atın.

Cavabımı oxuduğunuzdan ümid edirəm.

158
14 июня '15 в 22:48 2015-06-14 22:48 cavab Bikku'ya 14 İyun '15 'də saat 10:48' da verilir. 2015-06-14 22:48

SOAP və REST web xidmətləri

SOAP və REST web xidmətləri arasında çox fərq var. Aşağıdakılar SOAP və REST arasında əhəmiyyətli 10 fərqlilikdir:

  • SOAP protokolu . REST bir memarlıq üslubudur .
  • SOAP Simple Object Access Protokolunu nəzərdə tutur. REST - nümayəndəliyin dövlətə köçürülməsi deməkdir.
  • SOAP protokolu olduğundan REST istifadə edə bilməz . REST, SOAP veb xidmətlərindən istifadə edə bilər, çünki bu konsepsiya və HTTP, SOAP kimi hər hansı protokoldan istifadə edə bilər.
  • SOAP biznes mantığını ifşa etmək üçün xidmət interfeyslərindən istifadə edir . REST , biznes məntiqini ifşa etmək üçün URI istifadə edir .
  • Java JAX-WS , Java API'sı üçün SOAP web xidmətlərindən istifadə edir. Java'da JAX-RS RESTful web services üçün java API'dır.
  • SOAP tam tətbiq edilən standartları müəyyənləşdirir . REST SOAP kimi çoxlu standartları müəyyən etmir.
  • SOAP, REST-dən daha çox bant genişliyi və resurs tələb edir . REST, SOAP-dan daha az bant genişliyi və resurs tələb edir .
  • SOAP öz təhlükəsizliyini müəyyənləşdirir . RESTful web services əsaslı nəqliyyat vasitələrindən təhlükəsizlik tədbirlərini devralır .
  • SOAP yalnız XML məlumat formatına imkan verir . REST, düz mətn, HTML, XML, JSON və s. Kimi müxtəlif məlumat formatlarını istifadə etməyə imkan verir .
  • SOAP REST-dən daha az üstünlük təşkil edir . REST , SOAP üzərində üstünlük təşkil edir.
87
15 марта '16 в 11:27 2016-03-15 11:27 Cavab Charan Ghate 15 mart '16 'da 11:27 2016-03-15 11:27' də verilir

REST ( RE təqdimatı S tate T transfer)
REST bir memarlıq üslubudur. SOAP kimi çox standartları müəyyən etmir. REST, CRUD məlumat əməliyyatlarını emal etmək üçün internet üzərindən bir ictimai API yayımlamaq üçün nəzərdə tutulmuşdur. REST, bir ardıcıl interfeys vasitəsilə adlandırılmış resurslara giriş üzərində odaklanılır.

SOAP (Sertifikatlaşdırma prinsipi) - SOAP öz protokolunu gətirir və tətbiq mantığının (məlumat deyil, xidmət) hissələrinin xidmət kimi açıqlanmasına yönəlir. SOAP əməliyyatları təmin edir. SOAP, hər biri müxtəlif interfeyslər vasitəsilə bəzi iş mantığını həyata keçirən adi əməliyyatlara yönəlib. SOAP tez-tez web xidmətləri olaraq adlandırılsa da, bu səhv ad. SOAP İnternet ilə çox az əlaqəsi var. REST, URI və HTTP əsasında əsl web xidmətlərini təmin edir.

Niyə istirahət?

  • REST standart HTTP istifadə etdiyindən, istənilən vaxt daha sadədir.
  • REST bir çox fərqli məlumat formatı istifadə etməyə imkan verir, burada SOAP yalnız XML icazə verir.
  • REST, JSON dəstəyi ilə brauzerinizin dəstəklənməsini artırmağa imkan verir.
  • REST, daha yaxşı performans və ölçeklenebilirliğe malikdir. REST oxu önbelleğe alınır, SOAP-based oxunuş önlənə bilməz.
  • Təhlükəsizlik təhlükəli bir problem deyilsə və məhdud resurslarımız var. Yoxsa ictimaiyyətin digər inkişafçıları tərəfindən asanlıqla istifadə ediləcək bir API yaratmaq istəyiriksə, onda REST web xidmətləri ilə getməliyik.
  • CRUD olmadan əməliyyatlara ehtiyacımız varsa.

Niyə SOAP?

  • WS-Təhlükəsizlik: SOAP SSL (REST kimi) dəstəkləyir, bir sıra müəssisə təhlükəsizlik xüsusiyyətləri əlavə edən WS-Təhlükəsizlik də dəstəkləyir.
  • WS-AtomicTransaction: Xidmətdən ACID əməliyyatları tələb olunur, siz SOAP lazımdır.
  • WS-ReliableMessaging: tətbiqiniz asynchronous emal və etibarlılıq və təhlükəsizlik zəmanətli səviyyədə lazımdır. Restin standart bir mesajlaşma sistemi yoxdur və müştərilərin yenidən cəhd edərək ünsiyyətdə olan uğursuzluqlara cavab verməsini gözləyir.
  • SOAP çox təhlükəsizdir, çünki öz təhlükəsizliyini müəyyən edir.
  • Təhlükəsizliyin ciddi bir problemi və resursları məhdud deyilsə, SOAP veb xidmətlərindən istifadə etməmiz lazımdır. Məsələn, bank işi ilə bağlı iş üçün bir web xidməti yaratsaq, o zaman yüksək təhlükəsizlik tələb olunduğu üçün SOAP ilə getməliyik.

2019

09 дек. Cavab Premraj 09 dekabrda verilir . 2015-12-09 02:38 '15 'də 2:38' de, 2015-12-09 02:38

Bu ikisi arasında qərar bir web xidməti inkişaf etdirərkən ilk seçiminiz olacaq, buna görə də bu ikisinin mənfəətlərini və eksilerini anlamaq vacibdir. İki fəlsəfə arasında şişirdilmiş müzakirələrdə reallıq ritorikadan ayrılmaq vacibdir.

REST əsasları

  • REST-də hər şey resurs kimi qəbul edilir.
  • Hər bir resurs URI ilə müəyyən edilir.
  • Vahid interfeys istifadə edir. Resurslar yaratmaq, oxumaq, yeniləmək və sil (CRUD) əməliyyatlarına bənzəyən POST, GET, PUT, DELETE əməliyyatlarını istifadə edərək işlənir.
  • Vatansız olun. Hər bir tələb müstəqil bir müraciətdir. Müştəridən serverə göndərilən hər bir tələb, sorğunu anlamaq üçün lazım olan bütün məlumatları ehtiva etməlidir.
  • Əlaqələr fikirlər vasitəsilə həyata keçirilir. Məsələn, XML, JSON RESTful Web Services RESTFul veb xidmətləri HTTP üsulları və REST konsepsiyalarına əsaslanır. RESTFul web xidməti, xidmət üçün dəstəklənən MIME növləri (XML, mətn, JSON, istifadəçi müəyyən ...) və dəstəklənən əməliyyatlar dəsti (POST, GET, PUT, DELETE) üçün bir əsas URI müəyyən edir.

SOAP əsasları

  • WSDL müştəri ilə xidmət arasında müqavilə təyin edir və təbiətdəki statikdir.
  • SOAP, HTTP və ya bəzən TCP / IP üzərində XML əsasında protokol yaradır.
  • SOAP funksiyaları və məlumat növlərini təsvir edir.
  • SOAP XML-RPC-nin varisidir və çox oxşardır, lakin standart rabitə üsulunu təsvir edir.
  • Bir neçə proqramlaşdırma dilləri daxili SOAP dəstəyinə malikdir, adətən bir web xidmətinin URL'sini yükləyin və onun veb xidmət funksiyalarına xüsusi kod tələb etmədən zəng edə bilərsiniz.
  • Göndərilən ikili məlumatlar əvvəlcə base64 kimi formatda kodlaşdırılmalıdır.
  • Bununla bağlı bir neçə protokol və texnologiya var: WSDL, XSD, SOAP, WS-Addressing.

SOAP vs REST?

SOAP-ın əsas üstünlüklərindən biri sizin WSDL xidməti təsvirinizdir. Siz xidmətin əsasını avtomatik olaraq kəşf edə və bu xidmət təsvirindən (xidmət çağırışlarını, metodlar üçün zəruri data növlərini yaratmaq və s.) Faydalı bir müştəri proxy yarada bilərsiniz. Обратите внимание, что с версией 2.0 WSDL поддерживает все HTTP-глаголы и может использоваться для документирования служб RESTful, но для этой цели существует менее подробный вариант в WADL (>

С помощью служб RESTful безопасность сообщений обеспечивается транспортным протоколом (HTTPS) и только точка-точка. Он не имеет стандартной системы обмена сообщениями и ожидает, что клиенты будут реагировать на сбои в связи путем повторной попытки. SOAP имеет успешную/повторную логику и обеспечивает сквозную надежность даже через посредников SOAP.

Одним из основных преимуществ API RESTful является гибкость представления данных, например, вы можете сериализовать свои данные в формате XML или JSON. API RESTful более чисты или понятны, потому что они добавляют элемент использования стандартизованных URI и придают большое значение используемому глаголу HTTP (т.е. GET, POST, PUT и DELETE).

RESTful-сервисы также легки, то есть у них нет много дополнительной разметки xml. Чтобы вызывать RESTful API все, что вам нужно, это браузер или HTTP-стек, и почти все устройства или машины, подключенные к сети, имеют это.

Преимущества REST

  • Так как REST использует стандартный HTTP, он намного проще в любой момент. Создание клиентов, разработка API-интерфейсов, документация намного легче понять, и существует очень много вещей, которые REST не делает проще/лучше, чем SOAP.
  • REST позволяет использовать много разных форматов данных, где SOAP разрешает только XML. Хотя это может показаться, что это добавляет сложности для REST, потому что вам нужно обрабатывать несколько форматов, по моему опыту это действительно было очень полезно. JSON обычно лучше подходит для данных и анализирует гораздо быстрее. REST позволяет улучшить поддержку браузеров благодаря поддержке JSON.
  • REST имеет лучшую производительность и масштабируемость. Чтение REST может быть кэшировано, чтение на основе SOAP не может быть кэшировано.
  • Никакие дорогие инструменты не требуют взаимодействия с веб-службой.
  • Меньшая кривая обучения
  • Эффективный (SOAP использует XML для всех сообщений, REST может использовать более мелкие форматы сообщений)
  • Быстрый (не требуется большая обработка)
  • Ближе к другим веб-технологиям в философии дизайна

Преимущества SOAP

  • WS-Security: Пока SOAP поддерживает SSL (как и REST), он также поддерживает WS-Security, который добавляет некоторые функции безопасности предприятия. Поддерживает идентификацию через посредников, а не только точку (SSL). Он также обеспечивает стандартную реализацию целостности данных и конфиденциальности данных. Вызов "Enterprise" не означает, что он более безопасен, он просто поддерживает некоторые средства безопасности, которые типичные интернет-сервисы не нужны, на самом деле они действительно нужны только в нескольких сценариях "предприятия".
  • WS-AtomicTransaction: Требуется ACID Transactions над сервисом, вам понадобится SOAP. Хотя REST поддерживает транзакции, он не является исчерпывающим и не совместим с ACID. К счастью, транзакции ACID почти никогда не имеют смысла в Интернете. REST ограничивается самим HTTP, который не может обеспечить двухфазное принятие через распределенные транзакционные ресурсы, но SOAP может. Интернет-приложениям обычно не нужен этот уровень надежности транзакций, иногда делаются корпоративные приложения.
  • WS-ReliableMessaging: У Rest нет стандартной системы обмена сообщениями и ожидает, что клиенты будут реагировать на сбои в связи путем повторной попытки. SOAP имеет успешную/повторную логику и обеспечивает сквозную надежность даже через посредников SOAP.
  • Язык, платформа и транспорт независимы (REST требует использования HTTP)
  • Хорошо работает в распределенных корпоративных средах (REST предполагает прямую связь "точка-точка" ).
  • Унифицированная
  • Обеспечивает значительную расширяемость до сборки в виде стандартов WS
  • Встроенная обработка ошибок
  • Автоматизация при использовании с некоторыми языковыми продуктами

Где использовать REST

области, в которых REST отлично работают, являются:

  • Ограниченная полоса пропускания и ресурсы: помните, что структура возврата действительно в любом формате (разработчик определен). Кроме того, любой браузер можно использовать, поскольку подход REST использует стандартные команды GET, PUT, POST и DELETE. Опять же, помните, что REST также может использовать объект XMLHttpRequest, который поддерживает большинство современных браузеров, что добавляет дополнительный бонус AJAX.
  • Полностью безстоящие операции: , если операция должна быть продолжена, тогда REST не лучший подход, и SOAP может поместиться лучше. Тем не менее, если вам нужны операции с отсутствием CRATE (создание, чтение, обновление и удаление), тогда REST это.
  • Ситуации кэширования: , если информация может быть кэширована из-за полностью безгосударственной операции подхода REST, это идеально.

Где использовать SOAP

где SOAP работает как отличное решение:

  • Асинхронная обработка и вызов: , если ваше приложение нуждается в гарантированном уровне надежности и безопасности, тогда SOAP 1.2 предлагает дополнительные стандарты для обеспечения такого типа операций. Такие вещи, как WSRM - WS-Reliable Messaging.
  • Формальные контракты: , если обе стороны (поставщик и потребитель) должны согласовать формат обмена, тогда SOAP 1.2 дает жесткие спецификации для такого типа взаимодействия.
  • Операции с состоянием: , если для приложения требуется контекстная информация и управление диалоговым состоянием, тогда SOAP 1.2 имеет дополнительную спецификацию в структуре WS для поддержки этих вещей (безопасность, транзакции, координация и т.д.). Сравнительно, подход REST заставил бы разработчиков создавать эту обычную сантехнику.
29
ответ дан Prakash Hari Sharma 21 апр. '16 в 14:12 2016-04-21 14:12

Другие ответы дали обширные различия и подробно объяснили подробно. Поэтому я бы держался подальше от таких @ и спрашивал вас, если вы все еще смущены, если это так, вам может понравиться взглянуть на эту простую аналогию. 2019

ответ дан ishandutta2007 23 июня '17 в 8:19 2017-06-23 08:19

Разница между отдыхом и мылом

SOAP

  • SOAP - это протокол.
  • SOAP означает протокол простого доступа к объектам.
  • SOAP не может использовать REST, потому что это протокол.
  • SOAP использует сервисные интерфейсы для раскрытия бизнес-логики.
  • SOAP определяет строго соблюдаемые стандарты.
  • SOAP требует больше полосы пропускания и ресурса, чем REST.
  • SOAP определяет свою собственную безопасность.
  • SOAP разрешает только формат данных XML.
  • SOAP менее предпочтителен, чем REST.

REST

  • REST - это архитектурный стиль.
  • REST означает перенос репрезентативного состояния.
  • REST может использовать веб-службы SOAP, потому что это концепция и может использовать любой протокол, такой как HTTP, SOAP.
  • REST использует URI для раскрытия бизнес-логики.
  • REST не определяет слишком много стандартов, таких как SOAP.
  • REST требует меньше пропускной способности и ресурса, чем SOAP.
  • Веб-службы RESTful наследуют меры безопасности от основного транспорта.
  • REST позволяет использовать разные форматы данных, такие как обычный текст, HTML, XML, JSON и т.д.
  • REST предпочтительнее, чем SOAP.

Подробнее см. здесь

20
ответ дан Rex 21 марта '17 в 15:47 2017-03-21 15:47

ИМХО, вы не можете сравнивать SOAP и REST, где это две разные вещи.

SOAP - это протокол, а REST - архитектурный образец программного обеспечения. Существует много заблуждений в Интернете для SOAP vs REST .

SOAP определяет формат сообщений на основе XML, который использует приложения, поддерживающие веб-службы, для связи друг с другом через Интернет. Для этого приложения нуждаются в предварительном знании контракта с сообщением, типах данных и т.д.

REST представляет состояние (как ресурсы) сервера с URL-адреса. Он не имеет состояния и клиенты не должны иметь предварительные знания для взаимодействия с сервером, кроме понимания гипермедиа.

11
ответ дан marvelTracker 17 янв. '16 в 3:17 2016-01-17 03:17

Хорошо, я вижу, что в наши дни множество новых веб-сервисов реализованы с использованием архитектуры стиля REST, а не SOAP. Давайте отступим назад и объясним, что такое REST.

Что такое веб-служба REST

Аббревиатура REST означает передачу State State State Transfer, это означает, что каждый уникальный URL-адрес является представлением некоторого объекта. Вы можете получить содержимое этого объекта с помощью HTTP GET, чтобы удалить его, затем вы можете использовать POST, PUT или DELETE для изменения объекта (на практике большинство служб используют POST для этого).

Кто использует REST?

Все веб-службы Yahoo используют REST, в том числе API Flickr, del.icio.us, pubsub, bloglines, technorati, и eBay, и Amazon имеют веб-службы для REST и SOAP.

Кто использует SOAP?

Google швы должны быть последовательными в реализации своих веб-сервисов для использования SOAP, за исключением Blogger, который использует XML-RPC. Вы также найдете веб-службы SOAP в большом количестве корпоративного программного обеспечения.

REST vs SOAP

Как вы могли заметить, компании, о которых я упоминал, что используют REST api, не были очень долго, и их apis вышел в этом году в основном. Таким образом, REST - это, безусловно, модный способ создания веб-сервиса, если создание веб-сервисов может когда-либо быть модным (давайте рассмотрим его, мы используем мыло для мытья, а вы отдыхаете, когда устали).

Основные преимущества веб-служб REST:

  • Легкий - не много дополнительной разметки xml
  • Результаты, доступные для чтения.
  • Простота сборки - не требуется никаких инструментов.

SOAP также имеет некоторые преимущества:

  • Легко потреблять - иногда
  • Проверка жесткого типа, соблюдение контракта
  • Средства разработки

Для использования веб-сервисов иногда бывает, что между ними это проще. Например, веб-сервис Google AdWords действительно сложно потреблять (в любом случае в CF), он использует заголовки SOAP и ряд других вещей, которые делают его довольно сложным. С другой стороны, веб-служба Amazon REST иногда может быть сложной для синтаксического анализа, поскольку она может быть сильно вложенной, а схема результата может варьироваться в зависимости от того, что вы ищете.

Какая бы архитектура ни выбрала, убедитесь, что разработчики легко ее получают и хорошо документированы.

Ümid edirəm bu sizə kömək edir :)

9
ответ дан Vikash Pandey 12 сент. '16 в 9:18 2016-09-12 09:18

Дополнение для:

++ Ошибка, возникающая при приближении к REST, заключается в том, чтобы думать о ней как о "веб-сервисах с URL-адресами" - думать о REST как о другом способе удаленного вызова процедур (RPC), например SOAP, но вызывается через простые URL-адреса HTTP и без SOAP больших пространств имен XML.

++ Напротив, REST имеет мало общего с RPC. В то время как RPC ориентирован на обслуживание и ориентирован на действия и глаголы, REST ориентирован на ресурсы, подчеркивая вещи и существительные, составляющие приложение.

4
ответ дан Quan Nguyen 20 сент. '16 в 11:02 2016-09-20 11:02

Мыло

• SOAP означает протокол простого доступа к объектам

• SOAP - это протокол связи приложений

• SOAP - это формат для отправки и получения сообщений

• SOAP не зависит от платформы

• SOAP основан на XML

• SOAP - рекомендация W3C

Почему SOAP?

• Для веб-приложений важно иметь возможность общаться через Интернет.

• Лучший способ общения между приложениями - HTTP, потому что HTTP поддерживается всеми браузерами и серверами Интернета. Для этого был создан SOAP.

• SOAP обеспечивает возможность взаимодействия между приложениями, работающими в разных операционных системах, с различными технологиями и языками программирования.

API REST

• Передача репрезентативного состояния. В нем описывается, как одна система может связывать состояние с другим. Одним из примеров может быть состояние продукта (его имя, описание и т.д.), Представленное как XML, JSON или обычный текст. Обобщенная идея состояния называется ресурсом.

SOAP Vs. REST

2019

ответ дан isanka thalagala 26 нояб. '17 в 10:31 2017-11-26 10:31

Другие вопросы по меткам или Задайте вопрос