Devo accedere direttamente al back-end o tramite un livello API?

0

Per favore permettimi di porre la mia domanda usando un esempio in cui abbiamo un database con i dati di volo e voglio creare un'app web in cui gli utenti possano cercare, selezionare e prenotare un volo.

Ho scritto alcune classi come SelectedFlight , Ticket e Passenger . Ad esempio, il SelectedFlight dovrebbe rappresentare il volo che l'utente seleziona dall'elenco di voli disponibili. Il SelectedFlight ha un metodo get_flight_data() che interroga i dati dal database per creare l'istanza dell'oggetto SelectedFlight .

Ora ho bisogno di creare un'app web usando Python Flask (che è un framework che fondamentalmente ti permette di mappare gli URL alle funzioni di Python).

I (penso di aver) hanno due opzioni.

(1) Creo uno script con alcune funzioni di Flask. L'utente digita un URL e viene chiamata la funzione associata a quell'URL. La funzione crea un'istanza dei miei oggetti backend e restituisce HTML.

(2) Creo uno script (cioè API) con funzioni Flask ma invece di restituire HTML, le funzioni restituiranno JSON. Quindi creo un altro script con funzioni Flask che eseguono richieste sugli URL JSON e rendono HTML per l'app Web.

Quale delle opzioni useresti nell'esempio che ho citato e perché?

    
posta multigoodverse 18.11.2018 - 14:51
fonte

1 risposta

2

L'uso di un'API è la maggior parte delle volte quando due applicazioni disparate devono comunicare (è breve per l'interfaccia del programma applicativo). Quindi questo dipenderà interamente dal modello di progettazione della tua applicazione.

La prima considerazione è la possibilità di variare la piattaforma front-end, che @ivanivan menziona nel suo commento. Se desideri eseguire un'applicazione mobile o un'applicazione separata che deve consumare questi dati, ti consigliamo di sicuro un'API. Se intendi solo creare un'app Web, un'API è ancora una possibilità.

In secondo luogo, se il primo non ha risposto alla tua domanda, considera se vuoi fare una sola applicazione (il server fa tutto il lavoro e invia semplicemente HTML al client), o se vuoi due (o più) applicazioni ( il front-end è la propria applicazione e il server fornisce dati a tale applicazione). Questa è una differenza comune tra sincrono (ogni modifica sulla pagina Web è una nuova richiesta / pagina) e asincrona (ogni modifica sul sito Web potrebbe essere una piccola chiamata API per ottenere / aggiornare dati). Con il tuo caso d'uso specifico, un'applicazione web statica può funzionare perfettamente. Tuttavia, il tuo set di funzionalità o idee di progettazione potrebbero evolversi oltre. È un po 'più di lavoro, tuttavia, poiché la tua logica viene suddivisa tra l'API e il front-end.

Qualunque sia la cosa migliore per te riguarda le caratteristiche che desideri e quanto lavoro vuoi mettere.

    
risposta data 20.11.2018 - 17:51
fonte

Leggi altre domande sui tag