Non è possibile confrontare REST e SOAP. REST è uno stile architettonico mentre SOAP è un protocollo.
Sfortunatamente, REST è diventato colloquiale, sinonimo di servizio HTTP RESTful, il che significa una realizzazione dell'architettura in stile REST con HTTP come protocollo (applicazione).
REST si basa sui seguenti principi (vincoli ed elementi) (tra parentesi la realizzazione in RESTful HTTP) [1] .
- Stateless (HTTP è un protocollo stateless)
- Risorsa (identificata dagli URI)
- Interfaccia uniforme (metodi HTTP)
- Rappresentazione (MIME-TYPE)
- HATEOS (collegamenti ipertestuali)
- Cache (cache HTTP)
Dall'altro lato molte persone intendono dire SOAP un servizio web basato su WSDL e SOAP che fanno parte dell'architettura del servizio web W3C [2] .
- SOAP viene utilizzato come protocollo per lo scambio di informazioni (fondamentalmente nome del metodo, parametri, valori di ritorno, tipi di dati, ...).
- WSDL un linguaggio di definizione dell'interfaccia per descrivere il servizio web.
Qual è il significato attuale di SOAP *?
SOAP è uno standard W3C ed è utilizzato come formato di scambio di informazioni nei servizi Web W3C. Tali servizi web erano - specialmente durante l'hype delle SOA (architetture orientate ai servizi) intorno al 2008 (+ - 3 anni) - e (purtroppo) sono ancora implementati principalmente nelle applicazioni aziendali.
Questo ha diverse ragioni. All'epoca RESTful HTTP non era ben noto ed era frainteso. Sfortunatamente, è ancora frainteso dare un'occhiata alle altre risposte
„[...] REST è molto più limitato di SOAP [...].“
„Lo scopo principale di REST è rappresentare le risorse su Internet [...].“
Inoltre, SOAP (e WSDL) fanno parte dello stack del protocollo del servizio Web W3C che fornisce ancora più standard per l'implementazione di un servizio Web.
Le persone stanno ancora sviluppando nuove API basate su SOAP o ora è per lo più un'eredità?
Quindi sì, ci sono ancora e ci saranno anche nei sistemi futuri là fuori che stanno usando SOAP (almeno nei sistemi aziendali, per lo più dietro le porte). Ma la maggioranza sta cercando di fare una sorta di "RESTO" al giorno d'oggi.
Qualcuno può correggermi se sbaglio su questa differenza tra SOAP e REST?
Dire che REST è un'architettura stateless più flessibile per il trasferimento dei dati non è una buona spiegazione. Semplicemente parlato REST è uno stile di architettura con vincoli ed elementi specifici. Mentre SOAP è un protocollo di scambio di informazioni.
Come ho già scritto, non puoi confrontarli. Ma è possibile confrontare un servizio Web HTTP RESTful con un servizio Web SOAP / WSDL.