java - sono - rest web services




Principali differenze tra SOAP e servizi web RESTful in java (8)

Questa domanda ha già una risposta qui:

Domanda successiva a questo post :

Per ora ho una leggera idea delle differenze tra SOAP e RESTful Services.

La mia domanda è quando dovrei usare SOAP e quando dovrei usare RESTful; quale è "migliore" quando si tratta di prestazioni / velocità o gestione delle richieste?

Sto implementando per la prima volta in RESTful (java) e voglio saperne di più; Ho già avuto a che fare con SOAP.


REST vs servizi Web SOAP

Sto vedendo un sacco di nuovi servizi web sono implementati utilizzando un'architettura in stile REST in questi giorni piuttosto che uno SOAP. Facciamo un passo indietro e spieghiamo cos'è REST.

Cos'è un servizio Web REST

L'acronimo REST sta per Representational State Transfer, questo in pratica significa che ogni URL univoco è una rappresentazione di qualche oggetto. È possibile ottenere il contenuto di tale oggetto utilizzando un GET HTTP, per eliminarlo, è quindi possibile utilizzare un POST, PUT o DELETE per modificare l'oggetto (in pratica la maggior parte dei servizi utilizza un POST per questo).

Chi sta usando REST?

Tutti i servizi web di Yahoo utilizzano REST, incluso Flickr, l'API del.icio.us lo utilizza, pubub, bloglines, technorati e sia eBay che Amazon hanno servizi Web sia per REST che per SOAP.

Chi sta usando SOAP?

Google sembra coerente nell'implementare i propri servizi Web per utilizzare SOAP, ad eccezione di Blogger, che utilizza XML-RPC. Troverai anche i servizi web SOAP in molti software aziendali.

REST vs SOAP

Come avrai notato, le aziende che ho menzionato che usano REST API non sono state utilizzate da molto tempo e le loro apis sono uscite quest'anno per lo più. Quindi REST è sicuramente il modo alla moda per creare un servizio web, se la creazione di servizi web potrebbe essere sempre di moda (lascia che faccia a te usi il sapone per lavarti, e riposi quando sei stanco). I principali vantaggi dei servizi web REST sono:

Leggero - non molto markup xml extra Risultati leggibili dall'uomo Facile da compilare - nessun toolkit richiesto SOAP ha anche alcuni vantaggi:

Facile da consumare - a volte rigido - controllo di tipo, aderisce a un contratto Strumenti di sviluppo Per il consumo di servizi Web, è a volte una scossa tra cui è più facile. Ad esempio, il servizio web AdWords di Google è davvero difficile da consumare (in CF comunque), utilizza le intestazioni SOAP e una serie di altre cose che lo rendono un po 'difficile. Al contrario, il servizio web REST di Amazon può a volte essere difficile da analizzare perché può essere molto annidato e lo schema dei risultati può variare un po 'in base a ciò che si cerca.

Qualunque architettura tu scelga assicuri che sia facile per gli sviluppatori accedervi e ben documentata.

Freitag, P. (2005). "REST vs servizi Web SOAP". Estratto da http://www.petefreitag.com/item/431.cfm il 13 giugno 2010


  1. REST non ha alcuna definizione dell'interfaccia WSDL [Web Description Language].

  2. REST è su HTTP, ma SOAP può trovarsi su qualsiasi protocollo di trasporto come HTTP, FTP, SMTP, JMS, ecc.


Il servizio Web SOAP esegue sempre un'operazione POST mentre utilizzando REST è possibile scegliere metodi http specifici come GET, POST, PUT, DELETE. Esempio: per ottenere un oggetto usando SOAP dovresti creare una richiesta xml ma nel caso di REST puoi semplicemente specificare l'id dell'oggetto nella url stessa.


REST è più facile da usare per la maggior parte ed è più flessibile. A differenza di SOAP, REST non deve utilizzare XML per fornire la risposta. Possiamo trovare servizi Web basati su REST che generano i dati in Command Separated Value (CSV), JavaScript Object Notation (JSON) e Really Simple Syndication (RSS). Siamo in grado di ottenere l'output di cui abbiamo bisogno in una forma facilmente analizzabile nella lingua di cui abbiamo bisogno per la nostra applicazione.REST è più efficiente (usa formati di messaggio più piccoli), veloce e più vicino ad altre tecnologie Web nella filosofia del design


REST sarà quasi sempre più veloce. Il principale vantaggio di SOAP è che fornisce un meccanismo per i servizi per descrivere se stessi ai clienti e per pubblicizzare la loro esistenza.

REST è molto più leggero e può essere implementato utilizzando quasi tutti gli strumenti, con conseguente riduzione dell'ampiezza di banda e una curva di apprendimento più breve. Tuttavia, i clienti devono sapere cosa inviare e cosa aspettarsi.

In generale, quando pubblichi un'API nel mondo esterno che è complessa o che probabilmente cambierà, SOAP sarà più utile. Oltre a questo, REST è solitamente l'opzione migliore.


Riposo VS SOAP

SAPONE:

► SOAP è un semplice protocollo di accesso agli oggetti eseguito su TCP / UDP / SMTP.
► SOAP legge e scrive i messaggi di risposta delle richieste in formato XML.
► SOAP utilizza l'interfaccia per definire i servizi.
► SOAP è più sicuro in quanto ha una propria sicurezza e standard ben definiti.
► SOAP segue lo stile RPC e Documento per definire i servizi Web.
► SOAP utilizza SOAP-UI come strumenti client per il test.

RIPOSO

► REST è il trasferimento di stato rappresentazionale che utilizza i protocolli HTTP sottostanti.
► REST è senza stato.
► REST è uno stile architettonico utilizzato per descrivere e definire i servizi Web.
► REST può leggere e scrivere messaggi di risposta alla richiesta in JSON / XML / Plain HTML.
► REST utilizza l'URI per ogni risorsa utilizzata nel servizio Web. Una risorsa può essere un metodo di testo immagine ecc.
► REST utilizza set di VERB come HTTP GET, POST, PUT, DELETE.
► REST è facile da sviluppare e facile da gestire rispetto all'interfaccia utente SOAP.
► REST ha strumenti client o plug-in leggeri che possono essere facilmente integrati nel browser.
► I servizi REST sono in grado di cache.


SAPONE

Lo standard SOAP (Simple Object Access Protocol), un linguaggio XML che definisce un'architettura di messaggi e formati di messaggi, viene utilizzato dai servizi Web che contiene una descrizione delle operazioni. WSDL è un linguaggio basato su XML per descrivere i servizi Web e come accedervi. funzionerà su SMTP, HTTP, FTP, ecc. Richiede supporto middleware, meccanisam ben definito per definire servizi come WSDL + XSD, SOAP Policy-WS restituirà dati basati su XML

Servizi web REST Representational State Transfer (RESTful). sono servizi Web di seconda generazione. Servizi web RESTful, comunicano via HTTP di servizi basati su SOAP e non richiedono messaggi XML o definizioni API servizio WSDL. per REST non è richiesto alcun middleware, ma è necessario il supporto HTTP. WADL Standard, REST può restituire XML, testo normale, JSON, HTML ecc.


  • REST sta per Representational State Transfer dove SOAP sta per Simple Object Access Protocol .

  • SOAP definisce la propria sicurezza laddove REST eredita la sicurezza dal trasporto sottostante.

  • SOAP non supporta la gestione degli errori, ma REST ha una gestione degli errori integrata.

  • REST è leggero e non richiede l' analisi XML . REST può essere consumato da qualsiasi client, anche da un browser Web con Ajax e Javascript. REST consuma meno larghezza di banda , non richiede un'intestazione SOAP per ogni messaggio.

    • REST è utile su qualsiasi protocollo che fornisce un URI. Ignorare il punto 5 per REST come indicato di seguito nell'immagine.





rest