Perché restituire XML / JSON per le richieste API, non possiamo semplicemente elaborare direttamente la richiesta e restituire la pagina Web modificata (HTML / CSS / JS)?

1

Diciamo che un utente richiede alcuni dati. Di solito i dati vengono elaborati tramite un server e quindi restituiti in formato XML / JSON. Immagino che un altro pezzo di elaborazione avvenga per convertirlo in HTML / CSS in modo che possa essere visualizzato su un browser.

Perché ci preoccupiamo di restituire XML / JSON per le richieste API? Perché non possiamo elaborare direttamente tutto ciò che l'utente desidera e restituire semplicemente la pagina Web modificata (HTML / CSS / JS)?

    
posta user1413969 15.04.2014 - 23:42
fonte

4 risposte

11

Perché puoi fare molte più cose con i dati reali oltre a visualizzarli in una pagina web.

L'HTML è solo un tipo di output che i browser Web riconoscono e non è realmente utilizzabile come data in modo significativo, perché i suoi metadati riguardano struttura e forma, non sui dati stessi. Contiene anche tutti i tipi di cose che non hanno nulla a che fare con l'output dei dati, come il tag <input> .

XML e JSON, d'altra parte, possono essere utilizzati per creare pagine Web HTML dinamiche semplicemente vincolandole. Inoltre, è possibile creare report con esso, è possibile analizzarlo con programmi e algoritmi, è possibile inserirlo in modo significativo in un database e elaborarlo ulteriormente.

Nessuna di queste cose è davvero pratica con HTML, poiché HTML è una lingua markup , non un meccanismo di trasporto dati.

    
risposta data 15.04.2014 - 23:48
fonte
1

Ci sono molti vantaggi nel restituire JSON o XML o restituire HTML:

  1. JSON (o XML) è in genere più compatto, quindi si ottengono prestazioni migliori nell'intero sistema. Questo è molto importante per i dispositivi mobili.
  2. Browser diversi hanno bug diversi. Se restituisci JSON o XML, devi solo gestire i bug in un unico posto, anziché su ogni pagina che genera output.
  3. A volte hai un servizio web in cui l'output è per gli umani, altre volte è una chiamata di funzione remota. Se scarichi JSON, hai solo bisogno di una singola implementazione sul server per gestire sia le pagine Web che le chiamate API.
  4. È più facile suddividere il problema, il che rende più facile avere un gruppo di persone che ci lavora. Quindi, abbattere il tuo problema in questo modo rende più facile per un team sviluppare e distribuire un sistema.
  5. Allo stesso modo, è più facile testare il server quando il tuo tester non ha bisogno di capire cosa fare con l'HTML.
  6. Se l'HTML è in genere localmente, è generalmente più semplice abbinarlo ai CSS.

Probabilmente ne potrei trovare di più.

    
risposta data 16.04.2014 - 02:41
fonte
0

HTML è usato per la presentazione nei browser, ma aggiunge molte risorse di visualizzazione (come <div>, <input>, <img> tag, ecc.)

XML e JSON non sono interessati al display ... possono semplicemente inviare una semplice rappresentazione dei dati. Come l'utente vede che i dati separano la preoccupazione.

Separando i due, puoi usare lo stesso JSON in molte pagine HTML differenti.

    
risposta data 16.04.2014 - 00:09
fonte
0

Oltre alle risposte fornite, c'è anche il fatto che in un front-end MVC o MVP si separano i dati dalla vista. Inoltre, consente il back-end di essere utile per più progetti.

È possibile fornire gli stessi dati e avere, ad esempio, un'applicazione che la visualizza come un grafico, uno che la utilizza nella sua logica (ad esempio un analizzatore di borsa che non mostra i dati di magazzino ma li utilizza per prevedere i prezzi futuri), e uno che lo mostra direttamente all'utente (forse in qualche modo ottimizzato) che può essere usato come strumento interno di debug per gli sviluppatori.

Se avessi il server restituire HTML, solo l'ultimo sarebbe pratico. Se restituisce tutti i tipi di codice diverso a seconda del client, significa che il design si spegne in funzione, il che dovrebbe essere evitato.

Come regola generale, la presentazione non dovrebbe mai essere mescolata con la logica. Questa è la filosofia di MVC. Il server si occupa di dati e logica. Riceve dati grezzi, elabora dati grezzi e restituisce dati grezzi. Non dovrebbe mai importare di cosa sembreranno i dati all'utente. Il compito del cliente è di formattare ed elaborare i dati al fine di renderli presentabili all'utente in qualsiasi modo venga specificato.

    
risposta data 16.04.2014 - 01:45
fonte

Leggi altre domande sui tag