In questo modulo nella prima lezione,
abbiamo imparato come costruire un server API REST completo usando express.
Quindi siamo in grado di servire le
richieste GET, PUT, POST e DELETE che arrivano ai vari endpoint API REST.
Ma il server stesso stava semplicemente restituendo
un semplice messaggio in risposta a queste richieste.
In un vero server API REST,
qualsiasi richiesta in entrata comporterà un'operazione corrispondente da eseguire sul retro
del database forse per recuperare i dati per rispondere a una richiesta GET,
o forse per modificare i dati esistenti sul server in risposta a una richiesta PUT.
Ora nel resto di questo modulo,
abbiamo studiato su come possiamo interagire da un'applicazione nodo con un server MongoDB,
che si tratti di utilizzare il driver MongoDB o utilizzando Mongoose.
Ora, un server API REST completo in grado di gestire
la richiesta end-to-end sarà possibile solo quando combiniamo i due insieme.
Cioè, un server basato su express che esegue
tutta l'elaborazione della logica di business e allo stesso tempo emetterà
le richieste di database al MongoDB
utilizzando il driver MongoDB nodo o utilizzando Mongoose.
Allora, come combiniamo i due insieme?
Quindi questo è ciò che vedremo in questa particolare lezione,
e i due esercizi che faremo come parte di questa lezione.
Ora abbiamo imparato come costruire
un server API REST utilizzando Express
e servire le varie richieste che arrivano ai punti finali dell'API REST.
Abbiamo anche visto come possiamo interagire con il database dalla nostra applicazione nodo.
Ora, dato che si dispone di una richiesta GET che entra nel server come esempio,
per gestire questa richiesta GET end-to-end,
una richiesta GET proveniente dal client significa che il client desidera recuperare
i dati dal server e utilizzare tali dati.
Quindi, una richiesta GET che entra nel server dovrà essere
gestita attraverso le varie elaborazioni effettuate da, ad esempio,
il server Express e una volta che l'elaborazione è fatto, la
logica aziendale del server Express si rende conto che ha bisogno di
eseguire un'operazione di query sul database.
Quindi, questo può avviare una query al database per
recuperare un set di documenti dal database,
e quindi i dati recuperati verranno quindi
trasformati in un messaggio di risposta e quindi inviati al server.
Quindi questa gestione end-to-end della richiesta e della risposta coinvolge due parti.
Uno ovviamente facendo la logica di business
nel server Express e quindi facendo l'interazione con
il database dall'applicazione nodo dal server Express che è
un'applicazione nodo che utilizza il driver MongoDB o Mongoose.
Useremo Mangusta negli esercizi.
Allo stesso modo, una richiesta POST che arriva
al punto finale dell'API REST sul server significa che
la richiesta POST porta alcuni dati nel corpo del messaggio.
Quindi, queste informazioni devono essere elaborate nel server Express
e le informazioni che devono essere memorizzate
nel database devono essere recuperate dal corpo della richiesta POST in arrivo e quindi la
richiesta di creazione corrispondente deve
essere creata o avviata dal server Express a il database MongoDB
e nella richiesta di creazione,
le informazioni che sono state recuperate dal corpo
della richiesta POST verranno inviate
al database per creare un nuovo documento in una raccolta specifica sul database.
E quindi il risultato di questa operazione verrà
inviato al client nel messaggio di risposta.
Quindi, qualsiasi operazione eseguita su un punto finale API REST se si tratta di un GET,
un PUT, un POST
o un'operazione DELETE,
come si vede da questi due esempi,
avvierà un'operazione di database corrispondente dietro le quinte.
Quindi, avendo capito questa interazione,
ciò che ci rendiamo conto è che una richiesta HTTP che arriva a
un endpoint API REST deve essere mappata in un'operazione di database corrispondente.
Quindi ogni richiesta in arrivo, GET, PUT, POST
o DELETE significa che è possibile accedere a una risorsa specifica sul database,
può essere recuperata o un gruppo di risorse può essere
recuperato dal database e quindi inviato al server,
o una risorsa può essere modificata in risposta a un PUT o a un POST
o anche una richiesta DELETE in arrivo al server API REST.
Quindi spetta alla logica del server Express,
la logica aziendale implementata nel server API REST Express,
gestire questa traduzione della richiesta in arrivo sia che si tratti di una richiesta GET,
PUT, POST o DELETE nell'operazione di database corrispondente.
Quindi diamo un'occhiata a un esempio di questo in un po 'più in dettaglio.
Quindi, arrivando alla combinazione del router Express più
MongoDB più Mongoose che agisce come ODM in mezzo,
le operazioni da eseguire del database devono essere avviate
all'interno del router che abbiamo costruito per ciascuno degli endpoint API REST.
Quindi all'interno del router,
anche il metodo GET,
il PUT o il metodo POST.
L' azione corrispondente da eseguire sul database se si tratta di una richiesta GET che
causa un metodo di ricerca piatti da eseguire o
una richiesta POST causando un metodo di creazione piatti da eseguire,
dovrà essere eseguita dal nostro server Express con conseguente
operazione corrispondente avviato sul database MongoDB.
Quindi, con questa comprensione di
come le richieste sono tradotte in una corrispondente operazioni di database,
passiamo ai due esercizi in cui vedremo la gestione della
richiesta GET, PUT, POST e DELETE arrivando ai punti finali di/dishId e
anche per modificare specifici commenti che si trovano
nei sottodocumenti racchiusi all'interno del documento piatto.