A volte ho sentito che rendere il sito web completamente basato su API, nel senso che anche nel browser la pagina è costruita sulla base dell'endpoint API e praticamente nient'altro.
Uno dei vantaggi che vedo in questo è che quando crei un'applicazione per smartphone hai già API che funzionano e sono testate. E nel caso tu abbia bisogno di cambiare qualcosa, puoi cambiare praticamente l'app per desktop e per dispositivi mobili nello stesso momento (con alcune modifiche forse).
Forse ho in qualche modo frainteso l'idea, ma ho alcune domande su tutta la sua fattibilità. Sfortunatamente non sono riuscito a trovare nessun buon articolo su questo argomento (il che è strano, forse è perché questo non è ciò che le persone fanno e ho appena frainteso completamente).
Per esempio, per essere chiari sull'ambito di applicazione, diciamo che stiamo costruendo un sito di social-network.
- Per le API di sviluppo mobile è il modo predefinito, ma per il desktop sembra essere eccessivo per me. Sono abituato al framework Django e si può fare abbastanza facilmente il rendering delle pagine - il browser invia la richiesta GET o POST con i parametri e si rende una pagina di risposta, non può essere più semplice. Ma se decido di utilizzare l'API sul browser desktop, invece di una semplice richiesta, ho bisogno di costruire JSON, inviarlo all'endpoint API, deserializzare e quindi eseguire il rendering di una risposta. E a differenza del solito modo, in cui posso generare una risposta molto complessa in un solo passaggio - con gli endpoint dell'API potrebbe essere necessario utilizzare diversi endpoint per generare pagine Web desktop con molti contenuti, ovvero finisco per inviare più richieste API. Quindi, utilizzando l'API per tutto ciò che riguarda la versione desktop del sito, aumento il numero di richieste al server e anche la quantità di codice necessaria. Sì, risparmierò tempo a sviluppare l'app per dispositivi mobili, ma a costo di una maggiore larghezza di banda e di una minore robustezza, il che non va bene secondo me. Forse non capisco qualcosa, sarebbe bello se qualcuno potesse spiegarlo.
- Ha davvero senso fare la versione desktop basandosi sugli endpoint API ovunque? Ho visto persone che ne parlano a volte, ma non ho mai visto esempi o grandi articoli a riguardo, il che mi suggerisce che forse questa è davvero un'idea stupida e sto sprecando il mio tempo anche a pensarci. Qualcuno realmente fa un grande sito web desktop dove ogni piccola cosa è legata agli endpoint API? Potrei non avere molta esperienza, ma per quanto ne so sono solitamente chiamate API piccole quando sono utili, ma non tutta la struttura si basa sull'API (a differenza delle app mobili). Quindi dovrei attenermi al solito sviluppo e lasciare l'API quasi esclusivamente alle app mobili?