Se l'opzione 2 è relativamente semplice per te (ad esempio l'aggiunta di conversioni JSON su una sola riga nei controller back-end, ad esempio), probabilmente è un buon investimento, poiché il JSON è più snello, molto meno lavoro dal lato del cliente e generalmente preferito dai consumatori di API RESTful (nel caso in cui ci siano altri consumatori).
Avendo recentemente fatto questo tipo di lavoro, direi che il miglior percorso successivo (se l'opzione 2 è difficile) sarebbe quella di utilizzare risposta e richiedere transformers per eseguire le conversioni tra il XML e oggetti JavaScript, che è una variante da qualche parte tra le opzioni 3 e 4. L'oggetto DOMParser è codice nativo, quindi analizza molto velocemente l'XML. Trasformare il DOM XML in oggetti JavaScript e generare XML da oggetti JavaScript sono entrambi algoritmi ricorsivi abbastanza semplici. Questo approccio disaccoppia tutto il resto del codice lato client dalla rappresentazione back-end, il che non sarebbe il caso se venisse adottata l'opzione 1. Tale disaccoppiamento consentirebbe di utilizzare direttamente un'interfaccia RESTful basata su JSON , dovrebbe sorgere tale opportunità.
La selezione di qualsiasi opzione che implichi oggetti JSON/JavaScript implicherà spesso problemi di mancata corrispondenza dell'impedenza come attributi XML, raccolte XML vs array JS e rappresentazione di contenuto misto XML. Se i tuoi modelli di dati sono abbastanza semplici, o non ti dispiace vivere con le soluzioni fornite da trasformatori pronti all'uso tra XML e JSON (ad es. Contenimento di oggetti ridondanti, proprietà di testo numerate per rappresentare il testo disgiunto mescolato con gli elementi) , quindi questo potrebbe non essere un problema per te. Altrimenti, ci sono opportunità per personalizzare imperativamente il comportamento di trasformazione alle due estremità della richiesta (anche se purtroppo non in modo dichiarativo, per quanto ho visto).
Grazie per la risposta dettagliata. Sono abbastanza sicuro che il nostro back-end abbia le conversioni xml-json e json-xml integrate, quindi inizierò a giocare con quelle e vedendo come funzionano bene! –
Felice di aiutare, @Nick Vikeras. In bocca al lupo! – Jollymorphic