Ho implementato un'API REST basata su JSON per un semplice blog. L'API consente la creazione, la visualizzazione, la cancellazione e la modifica di informazioni utente, blog, post di blog, commenti, "Mi piace", ecc. Alcune di queste operazioni, come l'eliminazione di un post di un blog, richiedono l'autenticazione. Questa operazione viene eseguita utilizzando autenticazione di accesso di base .
Ora ho bisogno di implementare un front-end Web per il blog. Il front-end deve essere in grado di fare tutte le stesse cose dell'API JSON, quindi avrebbe senso usare l'API per il front-end. L'API JSON e il front-end Web sono gestiti dallo stesso processo sullo stesso computer.
Come dovrei usare la mia API JSON per il front-end? Dovrei usarlo a tutti? Le opzioni a cui posso pensare sono:
- Il server riceve la richiesta per es. un certo post sul blog. Il server esegue una richiesta HTTP all'API JSON e passa i risultati direttamente al renderer del modello, che restituisce la pagina sottoposta a rendering al client. Ciò richiederebbe l'archiviazione della password dell'utente in testo normale per tutta la durata della sessione, in modo che le operazioni che richiedono l'autenticazione possano essere completate.
- Una chiamata AJAX viene utilizzata per richiedere il JSON, che viene quindi reso alla pagina. Se l'utente ha effettuato l'accesso correttamente, il nome utente è già associato alla sessione, quindi non è richiesta alcuna password per chiamare l'API JSON.
- Sia il front-end Web che l'API JSON utilizzano codice comune per manipolare il database e ognuno è responsabile dell'utilizzo corretto. Ciò richiederebbe alcuni refactoring.
- L'API JSON e il front-end Web sono completamente separati, il che significa che tutto deve essere implementato due volte e gestito separatamente.