Applicazione Web che utilizza solo API REST

2

In un progetto personale sperimentale I (insieme a un "team" di amici) è stato qualche tempo fa, abbiamo utilizzato un'API REST per fornire tutti i dati. Il frontend (una webapp solo per JS) ha appena chiamato questa API usando AJAX. Abbiamo usato una versione homebrew di OAuth e un meccanismo di token di fortuna per gestire l'autenticazione, e ha funzionato abbastanza bene. Abbiamo anche sviluppato un'applicazione desktop, che ovviamente è stata molto semplice perché non abbiamo dovuto modificare nulla sul lato server.

Per come la vedo io, ci sono vantaggi e svantaggi di questa soluzione, un ovvio svantaggio è rappresentato dalle prestazioni, dal momento che il server deve gestire più richieste (una per JS, CSS, HTML e una per i dati stessi). D'altra parte, l'alta portabilità che ho menzionato sopra è un enorme vantaggio nella mia mente.

Ora ecco la mia domanda: ne vale la pena? Qualcuno che ha più esperienza in questo campo di me consiglia un approccio come questo?

    
posta HackerCow 29.02.2016 - 08:20
fonte

2 risposte

1

Spostare più logica sul client significa elaborazione limitata sul server , quindi puoi ottenere un server meno performante ma richiede client più potenti . A seconda del tipo di applicazione su cui stai lavorando, questa opzione potrebbe essere o meno un'opzione. Per un'applicazione con un numero significativo di utenti e funzionalità che richiedono una certa quantità di elaborazione, i risparmi derivanti dall'avere un maggior numero di elaborazioni da parte dei clienti si sommano rapidamente.

Con JS / CSS ottimizzati (in bundle e miniati) la quantità di richieste fatte è abbastanza limitata e non dovrebbe essere un problema. Ricorda che la memorizzazione nella cache lato client è un grande vantaggio e probabilmente dovresti solo avere la richiesta iniziale di scaricare il file JS / CSS. Detto questo, anche se premi per il rendering lato server hai ancora bisogno di una certa quantità di JS (per mantenere la tua applicazione reattiva in quanto vi sono alcune cose che non puoi o non dovresti fare completamente lato server) e hai ancora bisogno del CSS per lo styling in modo che non influenzino la tua decisione tanto.

Avere una buona API REST significa anche che puoi avere una gamma più ampia di consumatori per i tuoi dati. Non si è limitati a una singola applicazione e si possono integrare in altri sistemi (come un widget in un CMS) e creare esperienze utente migliori grazie alla creazione di applicazioni intorno alla piattaforma su cui devono essere eseguite (come un'app specifica per iOS che ha un aspetto e una sensazione il modo in cui gli utenti si aspettano).

Uno dei maggiori problemi che puoi aspettarti è mantenere il tuo JS in una piattaforma multipiattaforma . Più JS significa una maggiore possibilità di rompere in una libreria o funzionalità che non sono supportate in un browser più vecchio o più recente. Con il rendering serveride hai più controllo sull'HTML inviato. Più ti affidi a JS, più dovrai testare su una vasta gamma di dispositivi.

In fondo, con JS / AJAX puoi ottenere applicazioni più reattive che possono essere fatte funzionare su una gamma più ampia di dispositivi, a scapito della complessità perché ora stai supportando tutti questi dispositivi.

    
risposta data 29.02.2016 - 13:13
fonte
1

Questa è la soluzione ottimale, e un modo abbastanza standard per fare le cose. Rende semplice lo sviluppo per mobile / web / desktop in quanto è possibile utilizzare la stessa API.

Abilita le richieste di origine incrociata e ospita il front-end su un server diverso o un cdn.

    
risposta data 29.02.2016 - 14:06
fonte

Leggi altre domande sui tag