Restituzione del codice vista in una risposta API

1

Ho un'API che restituisce un array di utenti formattati JSON all'interno di una data coppia di limiti lat / long.

Sto utilizzando questi dati per tracciare un numero di marker su una mappa, in base alla posizione di ciascun utente. Voglio anche rendere un elenco HTML su ogni richiesta del client in modo che possa mostrare l'elenco degli utenti tracciati lungo la mappa.

Qual è il modo migliore per ottenere l'elenco HTML per il client?

Per me sembra una soluzione errata restituire l'HTML per l'elenco utenti entro la chiamata API iniziale (response.html, o qualcosa del genere), anche se questo mi sembra di essere una scarpa funzionalità in una risposta API altrimenti pulita.

Inoltre, non voglio effettuare due chiamate API (una per i dati iniziali e una per l'HTML), per ovvi motivi (overhead).

Infine, non voglio generare il lato client HTML (in JavaScript), dato che ho già una classe per farlo dal lato server.

Quali opzioni mi lascia?

Grazie

    
posta James 14.09.2013 - 21:10
fonte

2 risposte

2

Restituisci i dati per l'elenco e utilizza il template client per convertirlo in HTML.

GET http://yourwebserver.com/users.json

[{ name: 'foo'}]

utilizzando un Mustache.js modello come questo

Mustache.render('<ul>{{#.}}<li>{{name}}</li>{{/.}}</ul>', data)

Con questo approccio hai una semplice interfaccia, riduci il trasferimento dei dati e rendi il template statico, quindi collegabile.

    
risposta data 02.12.2013 - 10:33
fonte
1

REST è un'architettura adattiva variabile (come sono sicuro tu abbia realizzato).

La risposta alla tua domanda penso che abbia più a che fare con te come programmatore di qualsiasi altra cosa. Ad esempio, non c'è nulla di sbagliato con la seguente chiamata API

GET http://yourapi.com/users.json
GET http://yourapi.com/users.html

Queste sono due diverse rappresentazioni della stessa risorsa. Perfettamente accettabile in una API REST.

Tuttavia, ritengo che il punto sia mantenere l'API "pulita". Ho una API REST che emette solo json, ma ho bisogno di avere un client che converta il json in HTML. Questo potrebbe essere un altro server web o potrebbe essere fatto tramite javascript.

Sulla rilettura della tua domanda, posso vedere che vuoi una risposta JSON e una risposta HTML con la stessa chiamata API. L'unico modo per raggiungerlo è come menzionato nei commenti sopra: usa una richiesta ajax per OTTENERE il json e poi manipola la pagina come richiesto con javascript (cioè usa javascript per aggiornare i dati del marker da json, e elenco utenti)

    
risposta data 02.12.2013 - 10:18
fonte

Leggi altre domande sui tag