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.