Tempo di attesa creato dall'avere separato API REST e applicazione web

0

Ho creato un nuovo progetto web MVC Asp.Net. Ho preso la decisione di creare due app diverse, la prima sarebbe un'API REST web che fornirebbe tutti i dati per la seconda, che sarebbe essenzialmente un'applicazione Web MVC senza interazioni di database. Mi sembra un ottimo modo per separare la logica di business dalla prensetation, inoltre sarebbe davvero facile creare un'app mobile che essenzialmente effettui la stessa chiamata all'API Web per l'accesso ai dati.

Questa è la mia preoccupazione, ogni volta che clicco una pagina sulla mia app Web, viene eseguita una prima richiesta http sul mio server. Quindi il mio server effettua una seconda chiamata http all'API REST per ottenere il mio modello di dati prima di restituire una risposta della chiamata iniziale. Non mi piace davvero la mancanza di reattività che crea sulla mia app web, l'attesa di mezzo secondo generata da quelle chiamate doppie mi infastidisce.

Anche se penso davvero che concettualmente l'idea sia buona, ho dei dubbi sull'efficienza di questo.

    
posta Nicolas Boisvert 11.04.2018 - 20:48
fonte

2 risposte

1

Se hai un'API REST, non hai bisogno di un'applicazione MVC. Invece, crea un'applicazione JavaScript frontend che usi direttamente la tua API.

Confronta il tuo schema attuale:

[JS/HTML frontend] <---> [MVC app] <---> [REST API]

a:

[JS/HTML frontend] <---> [REST API]

("JS / HTML frontend" è tutto ciò che l'utente vede nel browser, sia una pagina HTML sottile generata dalla tua applicazione MVC o qualcosa come React / Angular / qualunque applicazione.)

Avrai una catena di rete più breve, quindi un tempo di caricamento iniziale più breve.

    
risposta data 24.11.2018 - 14:11
fonte
0

Stai riscontrando un ritardo nella sola prima chiamata all'API? O su tutte le chiamate. Abbiamo riscontrato problemi con le prime chiamate a causa delle configurazioni di hosting impostate per riciclare / scaricare pool di applicazioni in disuso. Arriva la prima richiesta in cui viene attivato il ripristino del pool di applicazioni in memoria che può richiedere fino a 15 secondi.

Questo è il tuo problema, quindi le soluzioni a questo implicano un attento esame delle configurazioni di hosting, in particolare in merito ai tempi / orari di riciclaggio.

Se è necessario, puoi verificare se una chiamata iniziale "ciao" come app MVC che avvia i carichi di pagina potrebbe essere necessaria per gestire una prima chiamata dopo un lungo periodo di assenza dell'utente.

    
risposta data 25.10.2018 - 13:04
fonte

Leggi altre domande sui tag