[MUSIC]
Maintenant que nous avons compris l'API REST et que nous avons exprimé la prise en charge
de l'API REST, passons à l'exercice suivant.
Où nous allons voir comment nous allons développer l'API REST
en utilisant le support fourni par express.
Et aussi, l'utilisation du routeur express,
nous permettant d'organiser notre code d'une manière qui est plus appropriée
lorsque vous avez besoin de prendre en charge un grand nombre de points de terminaison API REST.
Pour commencer, en continuant avec le dossier node-express,
nous avons travaillé sur le serveur web basé sur express.
À l'invite, installons body-parser,
donc pour ce faire, tapez npm install body-parser —save.
Et nous utilisons la version 1.18.3 de
body-parser dans ce cours ici.
Maintenant, une fois que nous avons installé body-parser, puis allez dans notre code.
Dans l'index.js5,
laissez-moi exiger BodyParser, donc
nous dirons que const
BodyParser nécessite body parser.
Et puis chaque fois que vous avez besoin d'utiliser un middleware,
vous direz, app.use (Bodyparser.json).
Cela nous permet donc d'analyser le corps du message de requête,
qui est formaté au format JSON.
Une fois que nous avons terminé cela, commençons
à construire la prise en charge de l'API REST pour le point de terminaison /plats.
En utilisant les
méthodes app.all, app.get, put, post et delete sont prises en charge par express.
Donc, pour ce faire, laissez-moi commencer par dire
app.all, et les premiers paramètres
que app.all prend est le point de terminaison.
Donc, dans ce cas, je spécifie le point de terminaison de /dish.
Et puis le deuxième paramètre est la fonction de rappel,
req, res, next, les trois paramètres ici.
Et à l'intérieur de cette fonction de rappel, nous allons gérer la requête entrante.
Donc, nous dirons, quand une demande entrera, pour toutes les demandes.
Donc, quand nous disons app.all, quelle que soit la méthode qui est appelée,
get, put, post ou delete, pour le point de terminaison de l'API REST /plats,
ce code sera exécuté en premier par défaut ici.
Donc, nous allons dire res StatusCode est 200
, puis RES.setHeader et
disons texte Content-Type.
Nous allons envoyer du texte brut maintenant, au lieu du texte HTML.
Cela devrait suffire pour les points de terminaison de l'API REST.
Plus tard, nous enverrons les données sous forme de JSON une fois que
nous serons en mesure de récupérer les données de la base de données.
Donc, cela viendra dans l'un des exercices ultérieurs.
Pour le moment, nous enverrons simplement des réponses en texte clair au client.
Maintenant, après ces deux-là, le middleware n'est pas encore terminé.
Donc, nous allons appeler la fonction suivante ici, donc la suivante comme vous le voyez se réfère à cette suivante.
Donc, lorsque vous appelez ensuite, ce que cela signifie est qu'il continuera à chercher des
spécifications supplémentaires ci-dessous,
qui correspondront à ce point de terminaison vaisselle.
Donc, cela serait fait pour toutes les demandes, obtenir, mettre, poster et
supprimer, sur la vaisselle, et cela va continuer à la suivante.
Donc ici, supposons que nous obtenons une requête get
sur les plats, ce qui signifie que maintenant,
si nous obtenons une requête get sur les plats
, cela sera d'abord exécuté,
puis le req et res seront transmis
à ce deuxième appel ici.
Donc, dans ce cas, je n'aurai plus besoin de la prochaine,
parce que je ne vais pas appeler plus bas.
Je vais terminer le droit de manipulation dans cette méthode ici lui-même.
Donc, si nous modifions le req ou res à l'intérieur de ce code,
alors lorsque vous appelez le suivant, cet objet modifié
sera passé en tant que paramètre à cela.
Donc, si vous avez émis une demande get sur les plats, c'est donc ce qui sera
exécuté juste après cela, donc cette prochaine fera passer.
Et puis ici, vous remarquez que nous avons modifié l'objet res ici.
Et la modification portera en tant que paramètre d'entrée à cette fonction ici.
Donc, à l'intérieur de cette fonction get, nous pouvons dire, par exemple, pour le moment,
je vais simplement renvoyer un message simple, nous
dirons, va vous envoyer tous les plats.
Plus tard, lorsque nous récupérons les informations de vaisselle de la base de données
après avoir appris sur MongoDB, alors cette fonction retournera
ces données JSON au client, car c'est dans une requête get ici.
Maintenant, dans le cours précédent, nous avions utilisé le serveur JSON, et
le serveur JSON fournissait déjà tous ces éléments pour nous.
Maintenant, vous voyez comment vous construiriez
un vrai serveur qui traitera la requête entrante.
Ensuite, générez une réponse appropriée et
renvoyez-la en réponse à la demande reçue du côté client.
Et c'est là que l'utilisateur exprime, comme nous le voyons ici, est utile.
Donc, nous avons géré obtenir, nous
allons gérer post aussi sur les plats ici.
Et encore une fois, les paramètres seraient (req, res,
next), et cette fonction qui est invoquée sera ici.
Maintenant, lorsque la demande get est reçue, car ici, vous appelez rest.end.
Donc, cette fin est la gestion de la requête get et ne déclenche pas la réponse
à renvoyer, ou la réponse à renvoyer au client à ce stade.
Maintenant, si vous obtenez une demande de poste sur la vaisselle, encore une fois, tout ce code sera exécuté.
Et puis, à cause de cette prochaine, cela tombera dans cet appel de fonction ici.
Et puis le code ici, sera exécuté, donc lorsque vous recevez un message
La demande de poste venant du serveur portera quelques informations
dans le corps du message sous la forme de données JSON.
Ils verront quelle est la forme des données JSON lorsque nous
regardons plus tard lorsque nous testons le point final en utilisant post net.
Je vais vous montrer ce que le corps du message de demande de poste contiendra.
Mais à ce stade, ce que je vais faire, c'est,
je vais extraire l'information du corps.
Et donc ici, lorsque nous utilisons l'analyseur de corps, ce qui se passe est que pour
la requête entrante, le corps de la requête entrante sera analysé
puis ajouté dans l'objet req en tant que req.body.
Donc, req.body vous donnera accès à tout ce qui se trouve dans ce corps
du message.
Donc, lorsque j'envoie la demande,
j'ajouterai des informations au
corps de la requête sous la forme d'une chaîne JSON qui
contient un nom et une description.
Je vais donc extraire ces deux informations
, puis les imprimer et les renvoyer au client dans le message de réponse.
Donc, je peux dire, req.body.Et puis nom.
Et donc l'attente est que lorsque le client envoie le message de publication,
le corps du message de publication contiendra une chaîne JSON,
qui contiendra également la propriété name dans la chaîne JSON.
Donc req.body.name plus et
c'est là que j'inclurai
avec des détails : + req.body.description.
Donc, quelle que soit la chaîne JSON contient dans le req.body, mais la
chaîne JSON sera analysée dans un objet JavaScript et
ajoutée à l'objet requête en tant que corps de propriété.
L' objet JavaScript pointe vers tout ce qui
est entré en tant que chaîne JSON dans le corps du message de requête.
C' est pourquoi je suis capable d'analyser la propriété name, la propriété description,,
vous pouvez avoir la propriété price, la propriété image, et tout cela.
Donc, si vous avez suivi le cours précédent, vous avez vu la structure d'un
objet plat, sous la forme d'une chaîne JSON ou de l'objet JavaScript là-bas.
Donc, le nom et la description vous semblent familiers.
Donc c'est exactement ce que j'utilise ici. En
ce moment, je ne fais qu'extraire le nom et la description du corps et
ensuite le renvoyer au client dans ce corps.
Donc, je suis juste en train de construire ce message
de réponse ici en utilisant les informations du corps du message de demande, puis de le renvoyer au client.
Ainsi, je peux confirmer que le serveur reçoit tout ce que j'envoie
dans le corps du message.
Donc, c'est la demande de poste.
Maintenant pour mettre, laissez-moi juste copier ceci, puis collez-le ici.
Et puis pour mettre sur ce point de terminaison de vaisselle,
parce qu'il met sur le point de terminaison de vaisselle n'a pas de sens.
Un message signifie que vous publiez un nouveau plat sur les serveurs.
Un point de fin mis sur les plats n'a pas de sens,
donc ici ce que je vais faire est que je
vais répondre avec l'
opération PUT message non supportée sur /dish.
En outre, Je vais aussi, Inclure un code d'état de 403.
403 signifie que leur fonctionnement n'est pas pris en charge.
Donc, si vous regardez en arrière la table des codes de réponse HTTP,
vous verrez le code correspondant 403 ce qu'il représente là.
Donc, c'est ce que j'utilise pour la publication.
Pour supprimer, je vais copier
celui-ci et pour supprimer je vais,
Il suffit d'analyser ceci, et puis nous dirons, Suppression de tous les plats.
Donc, lorsque vous envoyez une demande de suppression sur ce point de terminaison /plats.
Il est interprété comme signifiant que
le client veut supprimer toutes les informations de vaisselle côté serveur.
Maintenant, il s'agit d'une opération dangereuse, donc
vous assurez que vous n'autorisez pas les utilisateurs partenaires à le faire.
Donc, plus tard, lorsque nous étudierons l'authentification,
nous verrons comment nous pouvons res vérifier cette opération uniquement aux utilisateurs privilégiés.
Mais encore une fois, comme vous le voyez, c'est une opération dangereuse, alors gardez à l'esprit à ce sujet.
Donc maintenant, vous voyez que dans le point de terminaison des plats, nous avons obtenir, mettre, poster
et supprimer le support.
Supportons également cela sur les plates/: point de terminaison dishid.
Donc, je vais copier les méthodes get, put, post et delete d'ici,
puis les appelle toutes aussi pour être supportées sur les
plats/:dishid.
Donc, c'est pour le get, et nous copions cela et
postons, mettez et supprimez.
Comment pouvons-nous gérer chacun de ces éléments ?
Donc, pour obtenir, si je reçois une requête sur plats/dishid,
ce que je voudrais faire est d'extraire ce paramètre,
puis de le renvoyer dans la requête, dans le message de réponse.
Donc nous allons dire, nous allons envoyer,
Détails du plat.
Maintenant, quel plat ?
Ces informations se trouvent dans le paramètre.
Donc, cette valeur de paramètre peut récupérer à partir de
req.params.dishid.
Donc, ce disHID, comme vous le voyez, le nom que vous utilisez ici devrait correspondre à cette valeur ici.
Donc, si vous voyez simplement l'ID ici,
cela devrait également correspondre au SiD donné ici.
Donc, le nom lui-même ne signifie rien, sauf que ce nom de paramètre et
cela devrait correspondre les uns aux autres, de sorte que vous pouvez récupérer les informations correctement.
Donc, nous allons dire, envoyer les paramètres du plat DisHID et
ensuite nous vous le dirons.
Donc, de cette façon, nous savons que le serveur reçoit le paramètre dish..
Donc, si je dis /plates/23 il y a plusieurs réponses
vous enverront les détails du plat 23 et ainsi de suite.
Donc, nous verrons comment cela fonctionne lorsque nous utilisons post pour tester ce serveur.
Maintenant pour le poste.
Pour post, cette méthode ne sera pas prise en charge,
donc je vais juste copier cette partie.
cela n'a pas de sens de faire un message sur une carte d'identité spécifique,
parce que vous n'essayez pas d'ajouter un nouveau plat.
Mais vous voulez modifier, et la modification se fait en utilisant l'opération put.
Donc, nous allons dire, l'opération POST n'est pas prise en charge sur /dish.
Et puis je vais ajouter dans le.
Req.params.dishid.
Donc, cela va renvoyer en disant post non supporté sur les
plats/23 dans le message de réponse.
Maintenant, pour PUT, Pour PUT, nous allons dire,
res.end et dire Will, mettre à jour le plat.
Req.params.dishid.
Ou plutôt, nous le ferons de cette façon.
Je vais d'abord écrire, Donc
res.write peut être utilisé pour ajouter une ligne au message de réponse.
Donc, nous allons dire mettre à jour le plat.
Et nous dirons Req.Params.Dishid.
Et puisque c'est une opération PUT, et si le corps contient la chaîne JSON,
qui contient les détails du plat,
je peux extraire la chaîne JSON parce que nous utilisons l'analyseur de corps.
Donc, nous allons dire
mettre à jour le plat :.
Quel plat ?
req.body.name.
Plus.
Avec des détails,
req.body.description.
Maintenant, quand on met à jour le plat, je veux ajouter une nouvelle ligne là.
Alors je dirai « /n » là.
Donc, lorsque vous faites un PUT, vous renvoyez les informations sur l'ID de plat que vous
mettez à jour, ainsi que les détails que vous mettez à jour.
Le nom et la description,
qui doivent figurer dans le corps du message PUT.
Pour supprimer, Il dira Deleting dish, et req.params.dishid.
Et donc pour supprimer, c'est l'opération qui sera effectuée.
Donc, vous voyez que maintenant nous avons les
opérations get, put, post et delete sur les plates/dishid, endpoint, et
aussi les opérations get, put, post sur le point de terminaison /plats.
Donc, sauvegardons maintenant les modifications.
Et relancez notre serveur.
Démarrez le serveur en disant npm start.
Allons maintenant au facteur et envoyons quelques requêtes à ce serveur et
voyons ce qu'il retourne.
Laissez-moi d'abord émettre un get à l'hôte local 3,000 et voir ce qu'il retourne.
Donc, lorsque vous envoyez une demande pour obtenir l'hôte local 3 000,
il renvoie toujours la page HTML de démarrage de l'index,
car la gestion des fichiers statiques est toujours en place.
Maintenant, laissez-moi envoyer une demande get à localhost : 3000/plats, et cela,
comme vous vous y attendez, va renvoyer une réponse disant que nous allons vous envoyer tous les plats.
Maintenant, envoyons une requête POST à localhost : 3000/plats.
C' est donc là que vous pouvez changer les différentes méthodes que vous voulez exécuter.
Mais lorsque vous envoyez un message,
vous voulez inclure quelques détails dans le corps du message car
quelqu'un s'attend à ce que vous envoyiez des informations dans le corps du message.
Alors cliquez sur le corps ici et cliquez sur raw ici.
Et puis, pour le texte, vous sélectionnez ceci à JSON afin
d'utiliser l'application JSON.
Donc, le type de contenu serait application/JSON dans
la demande que vous envoyez.
Donc, puisque c'est un objet JSON, donc
dans les accolades, je dirai nom.
Je vais simplement taper le test,
et la description.
Certaines informations standard ici, de sorte que vous voyez qu'il s'agit d'une chaîne JSON qui
contient deux propriétés, nom et description et les valeurs correspondantes.
Nous allons donc envoyer une demande de poste au serveur.
Lorsque vous envoyez une demande de poste au serveur, comme vous le voyez,
dans la réponse, il dit va ajouter le plat : détails de la semaine de test : description.
Ainsi, comme vous pouvez le voir, les deux informations sont extraites du corps
de ce JSON demandé [INAUDIBLE] et ensuite incluses dans la réponse.
Envoyez-nous une demande de mise à la vaisselle.
Lorsque vous envoyez une demande de mise à la vaisselle, comme vous le voyez,
il indique l'opération PUT non prise en charge sur /plats, et regardez l'état ici.
Il est dit Statut : 403 Interdit.
Cette opération n'est donc pas autorisée sur ce point de terminaison.
Faisons une opération DELETE sur la vaisselle.
Lorsque vous DELETE opération sur la vaisselle,
alors vous remarquerez qu'il dit supprimer tous les plats.
C' est donc la réponse que tu reçois.
Donc, vous voyez que le get post, put and
delete sur le point de terminaison /plats fonctionne comme vous le souhaitez.
Maintenant, nous allons faire un get sur la vaisselle /23.
Donc 23 voici le paramètre,
l'ID du plat que vous voulez obtenir.
Donc, lorsque vous envoyez une demande à ce que le serveur
répondra, enverra les détails du plat : 23 à vous.
Ainsi, vous voyez que le paramètre a été extrait du message de requête
, puis inclus dans le message de réponse.
Faisons un post à ce sujet.
Et comme vous le savez, POST n'est pas autorisé sur ce point de terminaison, et
c'est pourquoi vous obtenez un statut 403 Interdit à ce sujet.
Faisons une opération PUT là-dessus.
Donc, pour l'opération PUT, vous remarquez que le corps contient toujours cela.
Donc, dans POST, lorsque vous tapez une valeur ici,
celle-ci sera conservée et peut être incluse dans d'autres demandes que vous envoyez.
Donc, lorsque vous envoyez une requête PUT sur le point de terminaison, plats/23.
Donc, vous remarquez qu'il est dit mettre à jour le plat, 23.
Va mettre à jour le plat, le nom du plat,
avec des détails, la description du plat ici.
Et puis, faisons une opération de suppression sur ce point de terminaison,
puis il est dit, d suppression de plat : 23.
Donc, ces points de terminaison sont tous pris en charge comme vous le voyez dans cet exemple ici.
Nous avons donc fait d'obtenir les opérations PUT, POSRT, et de supprimer à la fois sur le point de terminaison
/plats et aussi sur le point de terminaison /dishes/ plat id.
Ainsi, vous voyez comment nous avons implémenté la prise en charge du point de terminaison de l'API REST pour
un ensemble de points de terminaison de l'API REST.
Maintenant, avec cela, nous terminons la première partie de cet exercice.
Donc, ici, nous avons vu comment nous pouvons utiliser express pour construire et
implémenter le point de terminaison de l'API REST pour les plats.
Maintenant, c'est le bon moment pour
vous de faire un commit git avec le message Express Simple REST.
Selon le terminal, je vais démarrer le, Serveur.
Vérifiez que trois des éléments ont été modifiés.
Donc, git add, git commit -m,
Express Simple REST, Et vérifiez l'ensemble.
Ainsi, comme vous pouvez le voir, en utilisant Express, vous pouvez facilement implémenter la prise en charge de l'API REST.
Et comme vous pouvez le voir dans cette liste, vous construisez les
méthodes get, PUT, POST et delete de l'application pour tous les points de terminaison de l'API REST comme celui-ci.
Maintenant, imaginez que vous avez un millier de points de terminaison d'API REST,
et vous devez construire quelque chose comme ceci.
Votre fichier index.js va exploser avec tant de points de terminaison d'API REST différents.
Et chacun étant géré en utilisant ses propres app.get,
app.put, app.delete et app.post.
Maintenant, Wxpress prend en charge un moyen de subdiviser ce travail en plusieurs
applications Express,
qui peuvent ensuite être combinées pour former l'ensemble de l'application Express.
C' est là que nous utiliserons l'Express
Router pour pouvoir construire une mini application Express.
Et puis, dans un fichier Express Router,
nous prendrons en charge le point de terminaison de l'API REST pour un groupe de pièces d'API REST.
Ainsi, par exemple, pour les plats, et les plats disHID,
ils peuvent tous être pris en charge dans un seul fichier.
De même, dans l'affectation, vous prendrez en charge un
point de terminaison API REST appelé promotions et promotions/:PromoID.
Ensuite, vous prendrez en charge une autre API REST et
pour les leaders/leaders, et /Leader:LeaderId.
Ainsi, chacun de ces groupes peut être implémenté séparément autant d'
applications Express en utilisant Express Router. C'
est donc ce que je vais vous illustrer pour
le point final de la vaisselle dans la prochaine partie de cet exercice.
Donc, pour ce faire, nous nous rendons compte que si nous mettons tous les fichiers dans un seul dossier,
alors encore une fois votre structure de dossier aura l'air désordonnée.
Donc, ma préférence est de créer un dossier ici nommé routes.
Et ce dossier de routes contiendra tous les routeurs que je vais
concevoir en utilisant le routeur Express.
Donc, dans le dossier routes, je vais créer un nouveau fichier appelé
dishRouter.js.
Et ce fichier dishRouter.js contiendra
l'implémentation de la gestion du point de terminaison de l'API REST pour les
points de terminaison /plats et /dishes:dishid.
Maintenant, comment pouvons-nous utiliser Express Router ?
Voyons comment on peut l'utiliser.
Maintenant, Express Router est livré avec Express, donc nous n'avons pas besoin d'installer
un autre module Node.
Au lieu de cela, nous pouvons travailler avec Express que nous avons déjà installé.
Donc, pour ce faire, à cette invite, tapez, const express
= require ('express') ;.
Notez donc que, puisqu'il s'agit d'une mini-application,
nous avons toujours besoin d'express même dans ce fichier dishRouter.js.
Et d'après votre connaissance des modules Node, une fois que vous définissez un nouveau fichier,
cela devient son propre module Node.
Et ce module Node peut ensuite être importé dans index.js.
Donc, vous voyez déjà la connexion entre la façon dont nous pouvons restructurer notre
application en plusieurs fichiers en utilisant des modules Node.
Donc, nous allons définir require Express, alors nous dirons const
bodyParser require ('body-parser').
Nous avons donc déjà installé BodyParser dans les étapes précédentes de l'exercice,
donc nous pouvons l'utiliser.
Maintenant, pour utiliser un routeur Express,
permettez-moi de déclarer const Dish.Router = Express.R.
Et sur express, il prend en charge cette interface de routeur, donc nous allons simplement
dire express.Router et cela va déclarer Dish.Router comme un routeur Express.
Donc, dans de nombreuses applications Express,
un aperçu ici, je peux gérer ce code lié à Dish.Router ici.
Donc, une fois que je déclare de cela un routeur Express, alors je peux dire Dish.Router.
Et puis sur le Dish.Router, il prend en charge une méthode appelée méthode de route,
qui peut prendre un point de terminaison comme paramètre.
Donc, je voudrais simplement déclarer ce point de terminaison un /.
Maintenant, tu te demandes, ça ne devrait pas être de la vaisselle ?
Vous verrez bientôt que j'ai besoin de monter ce
routeur Express dans mon fichier index.js.
Donc, dans mon fichier index.js, je vais monter ce routeur express au point de terminaison /plats.
Montage d'un routeur express, encore une fois,
un concept de plus que je veux que vous compreniez.
Encore une fois, je vais vous l'illustrer dans un court laps de temps.
Maintenant, le Dishrouter.route signifie qu'en utilisant cette approche,
nous déclarons le point de terminaison à un seul endroit.
Par lequel vous pouvez enchaîner tous obtenir, PUT, POST,
supprimer les méthodes déjà faire ce routeur plat.
Maintenant, quand vous regardez index.js, regardez la façon dont nous avons implicité cela.
Donc, nous avons app.all et puis /plats, app.get/plats et /dishes.
Maintenant, si vous aviez fait une erreur, et leur instructeur app.post
/plats à la place si vous tapez simplement /dish, alors que se passe-t-il ?
L' opération POST ne sera pas prise en charge sur les plats, mais
sera prise en charge sur le point de terminaison /dish.
Pour éviter ce problème, le routeur express prend en charge ce point de terminaison de route.
Sur le point d'extrémité de l'itinéraire,
vous spécifiez simplement le point final sur lequel ce routeur va fonctionner.
Et puis, la méthode get put portion delete, cela simplement enchaîné dans cela.
Donc, ce sera un groupe d'implémentations de méthodes toutes ensemble.
C' est donc la raison pour laquelle ils utilisent un routeur Express.
Donc, il est livré avec un couple de
support très utile pour vous assurer que votre implémentation est correcte.
Alors maintenant que nous allons le faire en tant que routeur à vaisselle,
ce que je vais faire, c'est que je vais enlever cette chose d'ici.
Maintenant, ce point de plats IDN, je vais
vous laisser ça comme un exercice dans votre première mission, mais
le point final de la vaisselle, je vais couper tout ça, jusqu'à tous.
Je vais découper cela de index.js5 et le
déplacer dans le Dish.Router ici.
Maintenant, quand je déplace ça dans le Dish.Router, je n'ai plus besoin de cette app.all.
Je l'enchaîne simplement dans la route, donc je vais simplement dire .all et
ensuite je n'ai plus besoin de cette définition de point final là.
C' est ça. Donc
ça dira .all et ensuite on dira req, res, suivant.
Et cela, tout fonctionne sur ce point de terminaison particulier
déjà spécifié ici.
Maintenant, non seulement cela, nous pouvons enchaîner les méthodes restantes.
C' est pour ça que vous voyez que j'ai enlevé le point-virgule d'ici.
Je vais supprimer cette application, puis l'attacher à cela.
Donc, obtient aussi est changé dans la route, et puis je peux supprimer
cette partie, la manipulation restera exactement la même qu'avant.
Donc de même, je vais supprimer l'application là.
Et encore une fois, supprimez cela de la publication.
Et la même chose.
Pour mettre, Et
pour supprimer, la même chose.
Notez donc qu'il n'y a pas de points-virgules ici
, ici ou ici, mais le dernier, la suppression, aura le point-virgule en place.
Donc, ce groupe est une seule unité implémentée en utilisant
le routeur plat sur ce routeur particulier, et tous ceux-ci sont enchaînés ensemble.
Et aussi, bien sûr, avec suppression, je dois supprimer ce point final.
C' est ça, tu vois, structure propre du code ici.
Donc, essentiellement, finit par implémenter le Dish.Router, à droite,
rappelez-vous, ce Dish.Router est défini dans le fichier dishRouter.js.
Maintenant, j'ai besoin d'exporter ceci à partir de ce module de nœud.
Donc, pour exporter cela, je vais aller au bas ici et
je vais dire module.exports et
dire, Dish.Router.
C' est ça.
Alors maintenant, mon Dish.Router exporte tout ce dont j'ai besoin.
Maintenant, tu regardes ça et tu dis, qu'en est-il du plat du Colon.
Cela fera partie de votre première mission.
Non seulement cela, vous allez implémenter pour
deux points de terminaison d'API REST supplémentaires, les promotions et les leaders.
Mais cela vous montre déjà la structure de ce à quoi
ressemble une implémentation de routeurs Express de la prise en charge de l'API res.
Donc, c'est pour Dishrouter.route.
Et une dernière chose avant que j'oublie,
nous devrions dire Disdishrouter.use (bodyparser.json ()).
Maintenant, une fois que vous avez terminé l'implémentation du Dish.Router,
nous pouvons maintenant aller dans le fichier index.js.
Puisque ce Dish.Router est un autre module de noeud, un module de noeud fin néanmoins.
Nous devons donc importer ceci dans notre application.
Donc, ici, je vais importer const
Dish.Router est égal à exiger.
Maintenant, puisque c'est un module de nœud basé sur un fichier,
je vais dire. /Routes/Routeur à vaisselle.
Et une fois que je les ai déclarés là-bas, alors je descends dans le code ici.
Et juste là, je dis app.use.
Et je monte le routeur à un point de terminaison.
Alors, comment puis-je monter le routeur ?
Le premier paramètre ici, je vais spécifier des plats de barre oblique.
Et le deuxième paramètre, spécifiez Dish.Router.
Et c'est tout.
Donc, ce que cela signifie est que dans mon application express,
toute demande venant à ce point de terminaison de plats slash sera gérée par Dish.Router,
et cela sera fait par le code qui est présent ici,
parce que nous avons dit route Dish.Router, et donc remarquez que cela dit barre oblique, ce
qui signifie que cette est monté au point de terminaison des plats de barre oblique.
C' est pourquoi tout ce qui passe par des plats slash sera envoyé à cela et
sera géré par ceci.
Un gros indice pour vous de penser à la façon dont vous implémenteriez
ce point de terminaison de l'ID de plat du côlon.
Vous utiliserez toujours le même fichier dishRouter.js pour implémenter également le support de
ce point de fin /dishes/:dishid.
C' est un autre indice pour toi, ok.
Avec ces modifications, sauvegardons les modifications que nous avons apportées
à notre application, puis redémarrez notre serveur
, puis jetez un oeil à la façon dont notre serveur va faire son travail.
Aller au terminal, laissez-moi redémarrer ce serveur en tapant npm start.
Et une fois que le serveur est opérationnel, je vais aller voir le facteur et
envoyer des demandes du facteur à ce serveur.
Aller au facteur, maintenant je sais que mon serveur ne supporte que
le point final de la vaisselle, j'ai implémenté la partie ID de plat de celui-ci.
Alors laissez-moi envoyer une demande get aux plats locaux d'accueil et
vous verrez que cela fonctionne exactement comme avant.
Maintenant, si vous avez fait une demande précédente dans la publication, vous pouvez simplement cliquer dessus
, puis renvoyer cette demande.
L' opération de mise ne fonctionne pas, après l'opération, fonctionne comme vous le voyez.
Et puis provoquons l'opération de suppression sur la vaisselle.
Et il dit supprimer tous les plats comme prévu.
C' est donc l'implémentation de la prise en charge de l'API de repos en utilisant le routeur express.
Avec cela, nous terminons la seconde moitié de cet exercice.
C' est un bon moment pour vous de faire un commentaire get avec le routeur express message.
Maintenant que nous avons terminé cet exercice où nous avons vu comment Express peut
être utilisé pour soutenir la mise en œuvre de la prise en charge du point de terminaison de l'API Res sur notre serveur,
ainsi que l'utilisation
du routeur Express, il est temps de passer à la première affectation qui suit cette leçon.
[ MUSIQUE]