Dans ce module de la toute première leçon,
nous avons appris comment construire un serveur API REST à part entière en utilisant express.
Nous sommes donc en mesure de traiter les
requêtes GET, PUT, POST et DELETE arrivant aux différents points de fin de l'API REST.
Mais, le serveur lui-même retournait simplement
un message simple en réponse à ces requêtes.
Dans un serveur d'API REST réel,
toute requête entrante impliquera une opération correspondante à effectuer à l'arrière dans
la base de données, peut-être pour récupérer des données pour répondre à une requête GET,
ou peut-être pour modifier des données qui existent sur le serveur en réponse à une requête PUT.
Maintenant, dans le reste de ce module,
nous avons étudié comment nous pouvons interagir à partir d'une application de nœud avec un serveur MongoDB,
que ce soit en utilisant le pilote MongoDB ou en utilisant Mongoose.
Maintenant, un serveur d'API REST à part entière capable de gérer
la demande de bout en bout ne sera possible que lorsque nous combinons les deux ensemble.
Autrement dit, un serveur basé sur Express qui effectue
tout le traitement de la logique métier et en même temps émettra les
demandes de base de données à la MongoDB
en utilisant le pilote MongoDB de noeud ou en utilisant Mongoose.
Alors, comment combinons-nous les deux ?
Voilà donc ce que nous examinerons dans cette leçon particulière
et les deux exercices que nous ferons dans le cadre de cette leçon.
Nous avons maintenant appris à construire
un serveur API REST en utilisant Express
et à traiter les différentes requêtes arrivant aux points de terminaison de l'API REST.
Nous avons également vu comment nous pouvons interagir avec la base de données à partir de notre application de nœud.
Maintenant, étant donné que vous avez une requête GET entrant dans le serveur
à titre d'exemple, pour gérer cette requête
GET bout en bout, une requête GET provenant du client signifie que le client veut récupérer
des données du serveur et utiliser ces données.
Ainsi, une requête GET entrant dans le serveur devra être
traitée à travers les différents traitements effectués par, par exemple,
le serveur Express et une fois le traitement terminé, la
logique métier du serveur Express réalise qu'il doit
effectuer une opération de requête sur la base de données.
Ainsi, cela peut lancer une requête à la base de données afin d'
extraire un ensemble de documents de la base de données,
puis les données récupérées seront ensuite
transformées en un message de réponse puis renvoyées au serveur.
Ce traitement de bout en bout de la demande et de la réponse implique donc deux parties.
Un bien sûr faire la logique métier dans
le serveur Express, puis faire l'interaction avec la
base de données à partir de l'application de nœud à partir du serveur Express qui est
une application de nœud utilisant soit le pilote MongoDB ou Mongoose.
Nous allons utiliser Mongoose dans les exercices.
De même, une requête POST arrivant
au point de fin de l'API REST sur
le serveur signifie que la requête POST apporte certaines données dans le corps du message.
Donc, ces informations doivent être traitées dans le serveur Express
et les informations qui doivent être stockées sur
la base de données doivent être extraites du corps de la requête POST entrante, puis la demande de
création correspondante doit
être créée ou initiée à partir du serveur Express pour la base de données MongoDB,
et dans la requête create,
les informations qui ont été récupérées du corps de
la requête POST seront envoyées à
la base de données pour créer un nouveau document dans une collection spécifique de la base de données.
Et puis le résultat de cette opération sera
renvoyé au client dans le message de réponse.
Ainsi, toute opération effectuée sur un point final d'API REST, qu'il s'agisse d'une
opération GET, PUT, POST ou DELETE,
comme vous le voyez dans ces deux exemples,
lancera une opération de base de données correspondante dans les coulisses.
Donc, après avoir compris cette interaction,
ce que nous réalisons est qu'une requête HTTP entrant dans
un point de fin d'API REST doit être mappée dans une opération de base de données correspondante.
Ainsi, chaque requête entrante, GET, PUT, POST
ou DELETE signifie qu'une ressource spécifique de la base de données peut être consultée,
peut être récupérée ou un groupe de ressources peut être
récupéré à partir de la base de données puis renvoyé au serveur,
ou une ressource peut être modifiée en réponse à un PUT ou à un POST
ou même une requête DELETE entrant dans le serveur API REST.
Il appartient donc à la logique du serveur Express,
la logique métier implémentée dans le serveur API REST Express, de
gérer cette traduction de la requête entrante, qu'il s'agisse d'une requête GET,
PUT, POST ou DELETE dans l'opération de base de données correspondante.
Alors regardons un exemple de ceci dans un peu plus en détail.
Donc, en arrivant à la combinaison du routeur Express plus
MongoDB plus Mongoose agissant comme l'ODM entre les deux, les
opérations à effectuer de la base de données doivent être initiées à
l'intérieur du routeur que nous avons construit pour chacun des points de fin de l'API REST.
Ainsi, dans le routeur,
même la méthode GET,
le PUT ou la méthode POST.
L' action correspondante à effectuer sur la base de données, qu'il s'agisse d'une requête GET
provoquant l'exécution d'
une méthode de recherche de plats ou d'une requête POST provoquant l'exécution d'une méthode de création de plats,
devra être effectuée par notre serveur Express résultant en
l'opération correspondante étant initié sur la base de données MongoDB.
Donc, avec cette compréhension de
la façon dont les requêtes sont traduites dans une opération de base de données correspondante,
passons aux deux exercices où nous allons examiner la gestion de la
requête GET, PUT, POST et DELETE arrivant aux points de terminaison /dishes/:dishid et
aussi modifier des qui se trouvent dans
les sous-documents inclus dans le document plat.