Applicazione Ajax: utilizzando SOAP vs REST?

3

Sto costruendo un'applicazione pesante ajax (lato client strettamente html / css / js) che otterrà tutti i dati e userà la logica di business del server tramite i servizi web.

So che REST sembra essere l'argomento scottante ma non riesco a trovare alcun argomento valido. L'argomento principale sembra essere il suo "peso leggero".

La mia impressione è che i servizi basati su wsdl / soap sono più espressivi e consentono un trasferimento di dati più complesso. Sembra che il sapone sarebbe più utile nell'applicazione che sto costruendo dove l'unico codice che consuma i servizi sarà il js scaricato nel browser client.

REST d'altra parte sembra avere una barriera d'ingresso più piccola e quindi può essere più utile per servizi come Twitter nel consentire ad altri sviluppatori di consumare facilmente questi servizi. Inoltre, REST sembra essere più adatto per trasferimenti di dati semplici.

Quindi in sintesi SOAP è utile per il trasferimento di dati complessi e REST è utile nel trasferimento di dati semplice.

Attualmente ho l'impressione che l'uso di SOAP sia il migliore a causa della complessità dei messaggi, ma forse ci sono altri fattori. Quali sono i tuoi pensieri sui vantaggi / svantaggi del sapone / riposo per una pesante app web ajax?

Modifica

Mentre wsdl è in xml, i dati che sto trasferendo avanti e indietro sono in realtà in JSON. Sembra semplicemente più naturale usare wsdl / soap qui a causa della natura dell'app. I verbi GET e POST potrebbero non essere sufficienti. Potrei voler dire qualcosa come: processQueue o executeTimer. Questo è il motivo per cui la mia conclusione è stata wsdl / soap sarebbe stata buona per colmare un livello complesso tra due applicazioni (client e server) mentre REST sarebbe stato migliore (grazie alla sua semplicità) per consentire a molti sviluppatori-utenti di consumare risorse a livello di programmazione.

Quindi potresti dire che la scelta cade lungo due righe

  • L'app sarà orientata ai verbi (completamento delle attività: usa soap) o orientata al nome (risorse che consumano: usa REST)
  • L'API verrà consumata da pochi sviluppatori o da molti sviluppatori (REST è strong per molti sviluppatori)?

Dal momento che una simile app ajax pesante potrebbe potenzialmente utilizzare molti verbi e sarebbe utilizzata solo dallo sviluppatore del client, sembra che soap / wsdl sarebbe la soluzione migliore.

    
posta coder 24.06.2012 - 03:19
fonte

2 risposte

3

Se stai facendo un'applicazione pesante AJAX e un pro su REST hai la possibilità di usare JSON come formato di interscambio dati invece di XML. JSON richiede meno markup rispetto all'XML, in modo da velocizzare l'applicazione poiché si invieranno meno dati sul filo.

Sembra anche che REST stia finendo di prendere SOAP con i servizi web, ed è sempre una buona cosa usare una tecnologia che è più diffusa quando porti nuovi sviluppatori o se vuoi che altri sviluppatori consumino i tuoi dati.

Il pro per SOAP è che ha già una struttura integrata, ma non vedo perché non puoi costruire la tua struttura nella soluzione REST.

EDIT: quando ho fatto la programmazione delle telecomunicazioni, il nostro switch telefonico supportava solo SOAP e non REST. Ho scoperto che SOAP richiedeva un sacco di cose di materiale sintetico che mi venivano in mente quando non ne avevo bisogno.

    
risposta data 24.06.2012 - 04:57
fonte
-1

SOAP e REST non sono le uniche opzioni. C'è un altro chiamato Direct Web Remoting.

Check it out.

SOAP richiede il mashalling / serializzazione. REST richiede il rispetto del paradigma GET POST, spesso le volte, nessuna di queste è necessaria per una trasmissione diretta dei dati da client a server.

Questa è la nozione di Direct Remoting. Il POJO (plain old Java Object) esistente sul server, esiste sul client. I metodi definiti per essere visibili sono chiamati dal client e il tipo restituito è essenzialmente il callback AJAX.

Spero che aiuti. Ti auguro il meglio! Nash

    
risposta data 24.06.2012 - 05:30
fonte

Leggi altre domande sui tag