Mai mult
SĂPUN vs RESTUL (diferențe)
Am citit articolele despre diferențele dintre SOAP și REST ca un serviciu web protocol de comunicare, dar cred că cele mai mari avantaje pentru RESTUL de SĂPUN sunt:
-
RESTUL este mult mai dinamic, nu este nevoie pentru a crea și actualiza UDDI(Universal Description, Discovery, și de Integrare).
-
RESTUL nu este limitată numai format XML. Servicii web odihnitor pot trimite text simplu/JSON/XML.
Dar SĂPUNUL este mai standardizate (de ex.: de securitate).
Deci, am dreptate în aceste puncte?
1206
10
Din păcate, există o mulțime de dezinformare și concepții greșite în jurul valorii de RESTUL. Nu numai problema ta si răspunde de @cmd reflectă pe cele, dar cele mai multe dintre întrebări și răspunsuri legate de subiectul pe Stack Overflow. SĂPUN și RESTUL poate't fi comparate direct, deoarece primul este un protocol (sau cel puțin încearcă să fie) și cel de-al doilea este un stil arhitectural. Aceasta este, probabil, una dintre sursele de confuzie în jurul valorii de ea, din moment ce oamenii au tendința de a apela RESTUL orice HTTP API care este't de SĂPUN. Împingând lucrurile un pic și încearcă să stabilească o comparație, principala diferență între SOAP și REST este gradul de cuplare între client și server implementări. Un SĂPUN client funcționează ca un desktop personalizat aplicație, strâns legate de server. Nu's un contract rigid între client și server, și totul este de așteptat să rupă dacă fiecare parte va schimba ceva. Ai nevoie de actualizări constante următoarele orice schimbare, dar's ușor pentru a verifica în cazul în care contractul este în curs de urmat. Un REST client este mai mult ca un browser-ul. L's un generic client care știe cum să folosească un protocol și metode standardizate, și o cerere pentru a se potrivi în interiorul. Nu't încalcă protocolul standarde prin crearea suplimentar metode, pârghii pe metode standard și de a crea acțiuni cu ei pe tip mass-media. Dacă dreptul de făcut, nu's mai puțin de cuplare, iar modificările pot fi tratate cu mai grațios. Un client ar trebui să introduceți un serviciu REST cu zero cunoștințe de API, cu excepția de la punctul de intrare și cel de tip mass-media. În SĂPUN, clientul are nevoie de cunoștințe anterioare pe tot ce se va utiliza, sau nu o't începe chiar de interacțiune. În plus, un client ODIHNA poate fi extins prin cod-la cerere, furnizate de către server în sine, exemplul clasic fiind codul JavaScript folosit pentru a conduce interacțiunea cu un alt serviciu pe partea de client. Cred că acestea sunt puncte cruciale pentru a înțelege ce RESTUL este de aproximativ, și modul în care aceasta diferă de SĂPUN:
stackoverflow.com/questions/<id>
, înlocuiți id-ul cu Întrebarea.id-ul și lipiți în browser-ul dumneavoastră. Ca's prostii, dar asta's ceea ce mulți oameni cred că RESTUL este. Acest ultim punct poate't fi destul de accentuat. Dacă clienții tăi sunt construirea Uri de template-uri în documentație și nu primesc link-uri în reprezentări de resurse, care's nu RESTUL. Roy Fielding, autoarea de ODIHNĂ, a făcut-o clar pe acest blog post: RESTUL APIs trebuie să fie hypertext-driven. Cu cele de mai sus în minte,'ll seama că, în timp ce RESTUL ar putea să nu fie limitate la XML, pentru a face corect cu orice alt format'll trebuie să proiecteze și să standardizeze un format pentru link-uri. Link-uri sunt standard în format XML, dar nu în JSON. Există proiecte de standarde pentru JSON, ca HAL. În cele din urmă, RESTUL e't pentru toată lumea, și o dovadă că este cât de mulți oameni rezolva problemele lor foarte bine cu HTTP Api-uri, în mod greșit numit ODIHNEASCĂ și să nu se aventureze dincolo de asta. RESTUL este greu de a face, uneori, mai ales la început, dar se plătește de-a lungul timpului cu mai ușor evoluția pe partea de server și client's rezistenței la schimbări. Dacă ai nevoie de ceva rapid și ușor, don't deranjat despre obtinerea RESTUL corect. L's, probabil, nu ceea ce ai're în căutarea pentru. Dacă ai nevoie de ceva care va trebui să rămână on-line pentru ani sau chiar zeci de ani, atunci RESTUL este pentru tine.RESTUL
vsSĂPUN
e nu dreptul de întrebare."REPAUS", spre deosebire de
SĂPUN
e nu - un protocol."RESTUL" este o stil arhitectural și o proiectare pentru rețele bazate pe arhitecturi software.
"REPAUS" concepte sunt denumite resurse. O reprezentare a unei resurse trebuie să fie apatrid. Acesta este reprezentat printr-un tip de suport. Câteva exemple de tipuri de mass-media includ
XML
,JSON
, șiRDF
. Resursele sunt manipulate de componente. Componente cerere și manipula resurse prin intermediul unui standard uniform de interfață. În caz de HTTP, această interfață este format din standard HTTP operațiuni de exemplu, "a LUA", "PUNE", "POST", "ȘTERGE".@Abdulaziz's cauză nu se aprinde faptul că "REPAUS" și "HTTP" sunt adesea folosite în tandem. Acest lucru se datorează în primul rând simplitatea HTTP și foarte natural cartografiere a Odihnitor principii.
Fundamentale RESTUL Principii
Comunicare Client-Server
Client-server arhitecturi foarte distincte de separare de preocupări. Toate aplicațiile construite în Odihnitor stilul trebuie să fie, de asemenea, client-server, în principiu.
Apatrid
Fiecare cerere a clientului la server presupune ca starea sa fie complet reprezentată. Serverul trebuie să fie în măsură să înțeleagă în totalitate cererea clientului, fără a utiliza orice server context sau server de stat sesiune. Rezultă că toate statele trebuie să fie păstrate pe client.
Cacheable
Cache constrângeri pot fi utilizate, permițând astfel datele de răspuns să fie marcate ca cacheable sau nu-cacheable. Orice date marcate ca cacheable pot fi reutilizate ca răspuns la aceeași cerere ulterioară.
Interfață Uniformă
Toate componentele trebuie să interacționeze printr-o singură interfață uniformă. Pentru că toate componentă de interacțiune are loc prin intermediul acestei interfețe, interacțiunea cu diferite servicii este foarte simplu. Interfața este la fel! Acest lucru înseamnă, de asemenea, că punerea în aplicare modificări pot fi făcute în mod izolat. Astfel de modificări, nu va afecta componentă fundamentală de interacțiune pentru uniforma de interfață este mereu neschimbat. Un dezavantaj este faptul că v-ați blocat cu interfața. Dacă o optimizare ar putea fi oferite pentru un anumit serviciu prin schimbarea interfeței, ai noroc ca RESTUL interzice acest lucru. Pe partea luminoasă, cu toate acestea, RESTUL este optimizat pentru web, prin urmare, popularitatea incredibilă de ODIHNĂ peste HTTP!
Conceptele de mai sus reprezintă caracteristicile definitorii ale ODIHNEASCĂ și să se diferențieze de RESTUL arhitecturii din alte arhitecturi de servicii web. Este util să rețineți că un serviciu REST este un serviciu web, dar un serviciu web nu este neapărat un serviciu REST.
Vezi acest blog post pe RESTUL Principii de Proiectare pentru mai multe detalii pe ODIHNA și mai sus menționat gloanțe.
EDIT: actualizare conținut bazat pe comentarii
SĂPUN (Simple Object Access Protocol) și RESTUL (Reprezentarea Statului de Transfer) ambele sunt frumoase în felul lor. Deci, eu nu le compar. În schimb, am încercat să descriu imaginea, când am preferat să folosesc RESTUL și când SĂPUN.
Ce este utilă?
Acum, de exemplu, trebuie să trimiteți un Telegramă și știm cu toții că costul de telegrama va depinde de unele cuvinte.
Spune-mi printre menționate mai jos aceste două mesaje, care este mai ieftin pentru a trimite?
sau
Știu că răspunsul tău va fi cel de-al doilea, deși ambele reprezintă același mesaj de-al doilea este mai ieftin ceea ce privește costul.
Așa că am încercat să spun că, trimiterea de date prin rețea în format JSON este mai ieftin decât trimiterea în format XML cu privire la sarcină utilă.
Aici este primul beneficii sau avantaje de RESTUL SĂPUN. SĂPUN numai suport XML, dar RESTUL suporta format diferit, cum ar fi text, JSON, XML, etc. Și știm deja că, dacă vom folosi Json, atunci cu siguranta ne va fi mai bine în ceea ce privește sarcina utilă.
Acum, SĂPUN sprijină numai XML, dar, de asemenea, are avantajele sale.
Într-adevăr! Cum?
SĂPUN se bazează pe XML în trei moduri Plic – care definește ceea ce este în mesaj și cum să-l proceseze.
Un set de reguli de codare pentru tipuri de date, și în cele din urmă aspectul procedurii de apeluri și răspunsuri s-au adunat.
Acest plic este trimis printr-un mijloc de transport (HTTP/HTTPS), și un RPC (Remote Procedure Call) este executat, iar plicul este întors cu informații într-un format XML document.
Punctul important este faptul că unul dintre avantajele de SĂPUN de "generic" de transport dar RESTUL utilizează HTTP/HTTPS. SĂPUN poate folosi aproape orice transport pentru a trimite cererea, dar RESTUL nu. Deci, aici avem un avantaj al folosind SĂPUN.
După cum am menționat deja în paragraful de mai sus "RESTUL utilizează HTTP/HTTPS", deci merge un pic mai adânc asupra acestor cuvinte.
Atunci când vorbim despre RESTUL de peste HTTP, toate măsurile de securitate aplicate HTTP sunt moștenite, iar acest lucru este cunoscut sub numele de transport nivelul de securitate și se fixează numai mesaje în timp ce este în interiorul firului dar, odată ce i-ai livrat pe de altă parte nu știu câte etape va trebui să treacă prin înainte de a ajunge la real punct în cazul în care datele vor fi prelucrate. Și, desigur, toate aceste etape ar putea folosi ceva diferit decât HTTP.Deci Restul nu este complet sigur, nu?
Dar de SĂPUN suportă SSL la fel ca RESTUL suplimentar sprijină, de asemenea de Securitate-WS care se adaugă unele intreprinderi caracteristici de securitate. WS-Security oferă protecție de la crearea unui mesaj e consum. Deci, pentru transportul de securitate la nivel de orice portiță de scăpare, am constatat că pot fi prevenite folosind WS-Security.
În afară de asta, ca RESTUL este limitată de l's protocolul HTTP deci e suport de tranzacție este nici ACID, conforme și nici nu poate oferi comitere în două faze peste distribuite transnaționale resurse.
Dar de SĂPUN are suport complet pentru ambele pe baza de ACID de management de tranzacții de scurtă durată tranzacții și de compensare pe bază de management de tranzacții de lungă durată tranzacții. Acesta susține, de asemenea, comitere în două faze peste distribuite resurse.
Eu nu sunt de a trage orice concluzie, dar voi prefera SAPUN pe baza de servicii web în timp ce de securitate, tranzacții, etc. sunt principalele preocupări.
Aici este "Java EE 6 Tutorial" în cazul în care le-au spus A Odihnitor design poate fi adecvată atunci când sunt îndeplinite următoarele condiții. Avea o privire.
Sper că va plăcut citit răspunsul meu.
ODIHNA(de REprezentare State Transfer) De REprezentare State a unui Obiect este Transferred este RESTUL, adică nu ne't trimite Obiect, vom trimite starea de Obiect. RESTUL este un stil arhitectural. Nu se definește atât de multe standarde, cum ar fi SĂPUN. RESTUL este pentru a expune Api-uri Publice(de exemplu, Facebook API, Google Maps API) pe internet să se ocupe de operațiunile CRUD pe date. RESTUL este axat pe accesarea nume de resurse, printr-o singură interfață consistentă.
*SĂPUN *(Simple Oeema Occesul Protocol) SĂPUN aduce propriul protocol și se concentrează pe expunerea piese de logica aplicatiei (nu o data) ca servicii. SĂPUN expune operațiuni. SĂPUN este axat pe accesarea numit operațiuni, fiecare operațiune pună în aplicare unele logica de afaceri. Deși SĂPUN este frecvent menționată ca servicii web aceasta este impropriu. SĂPUN are o foarte puțin, dacă nimic de-a face cu Web-ul. RESTUL oferă adevărat servicii Web** bazat pe uri-Uri și HTTP.
De ce RESTUL?
application/xml " sau " application/json pentru POST și
/utilizator/1234.jsonsau de a LUA
/user/1234.xml pentru a OBȚINE.De ce SĂPUN?
source1 sursa2
Diferența între Odihnă și Săpun
*SĂPUN ***
ODIHNA
Pentru mai multe Detalii vă rugăm să consultați aici
IMHO puteți't compara SĂPUN și ODIHNĂ în cazul în care acestea sunt două lucruri diferite.
*SĂPUN * este un protocol și ODIHNA este un software de model arhitectural. Există o mulțime de neînțelegere în internet pentru SĂPUN vs RESTUL**.
*SĂPUN *** definește bazat pe XML format de mesaj care serviciul web-enabled aplicații folosesc pentru a comunica cu fiecare alte pe internet. În scopul de a face ca aplicatiile au nevoie de cunoștințe anterioare de mesajul contract, tipuri de date, etc..
ODIHNA reprezintă statul(ca resurse) de un server de la un URL.Este apatrid și clienții nu ar trebui să aibă o cunoaștere prealabilă a interacționa cu serverul dincolo de înțelegerea de hypermedia.
Există deja răspunsuri tehnice, așa că am'll încerca să ofere o intuiție.
Las's spun doriți pentru a apela o funcție într-un computer la distanță, puse în aplicare într-un alt limbaj de programare (acest lucru este adesea numit remote procedure call/RPC). Presupunem că funcția poate fi găsit la un anumit URL, furnizate de către persoana care a scris-o. Trebuie să (cumva) trimite un mesaj, și a obține un răspuns. Deci, există două întrebări principale de luat în considerare.
Pentru prima întrebare, definiția oficială este WSDL. Acesta este un fișier XML care descrie, în detaliu și stricte format, care sunt parametrii, care sunt tipurile lor, nume, valori implicite, numele de funcție pentru a fi numit, etc. Un exemplu WSDL arată că fișierul este lizibil (dar nu ușor).
Pentru cea de-a doua întrebare, există diverse răspunsuri. Cu toate acestea, singurul folosit în practică este SĂPUNUL. Ideea sa principală este: folie anterior XML (mesajul propriu-zis) într-o altă XML (care conține codificarea informatii si alte chestii utile), și trimite-l peste HTTP. Metoda POST de HTTP este folosit pentru a trimite un mesaj, deoarece există întotdeauna un organism.
Ideea principală din toată această abordare este că harta o adresă URL pentru o funcție, care este, de a o acțiune. Deci, dacă aveți o listă de clienți, în unele server, și doriți să vizualizați/update/delete unul, trebuie să aveți 3 URL-uri:
RESTUL abordare vede lucrurile diferit. Un URL nu ar trebui să reprezinte o acțiune, dar nimic (numit resurse în RESTUL jargon). Deoarece protocolul HTTP (pe care le folosesc deja) sprijină verbe, utilizați aceste verbe să precizeze ce acțiuni pentru a efectua pe lucru.
Deci, cu RESTUL de abordare, clientul numărul 12 s-ar fi găsit pe URL
myapp/clienti/12
. Pentru a vizualiza datele clientului, te-a lovit URL-ul cu o cerere. Să-l ștergeți, la fel URL-ul, cu o ȘTERGE verb. Pentru actualizare, din nou, la fel URL-ul cu un POST de verb, și conținut nou în corpul cererii.Pentru mai multe detalii despre cerințele pe care un serviciu trebuie să le îndeplinească pentru a fi considerat cu adevărat Odihnitor, a se vedea Richardson maturitate modelul. Articolul oferă exemple, și, mai important, explică de ce un (așa-numitele) SĂPUN de serviciu, este un nivel-0 RESTUL de servicii (deși, la nivel-0 înseamnă scăzut de conformitate cu acest model, l's nu ofensator, și este încă util în multe cazuri).
Printre multe altele, deja acoperite în multe răspunsuri, aș dori să subliniez faptul că SOAP permite să definiți un contract, WSDL, care definesc operațiunile sprijinite, tipuri de complexe, etc. SĂPUN este orientată spre operațiuni, dar RESTUL sunt orientate spre resurse. Personal, aș selectați SĂPUN pentru interfețe complexe între internă aplicații de întreprindere, iar RESTUL pentru public, mai simplu, apatrid interfețe cu lumea exterioară.
Plus pentru:
++ O greșeală, care este de multe ori făcut atunci când se apropie de ODIHNĂ este să se gândească la ea ca la "servicii web cu Url-uri"—pentru că de RESTUL ca un alt apel de procedură la distanță (RPC), mecanism, cum ar fi SĂPUN, dar a invocat prin HTTP simplu Url-uri și fără SĂPUN e voinic spații de nume XML.
++ Dimpotrivă, RESTUL are prea puțin de-a face cu RPC. Întrucât RPC este orientată spre servicii și s-a axat pe acțiuni și verbe, RESTUL resurselor orientate, subliniind lucrurile și substantive care cuprind o aplicație.
O mulțime de aceste răspunsuri în întregime uitat sa mentionez hypermedia control (HATEOAS), care este complet fundamental la ODIHNĂ. Alte câteva atins pe el, dar nu't explica atât de bine.
Acest articol ar trebui să explice diferența între concepte, fără a intra în buruieni specifice SĂPUN caracteristici.