Dans la conférence précédente,
nous avons appris à propos de l'API REST.
Vous avez vu comment les points de terminaison de l'API REST prennent en
charge un moyen pour une application cliente de récupérer
des données du serveur ou de télécharger des données sur le serveur à l'aide des différentes opérations HTTP.
Dans cette conférence et cet exercice qui suit cette conférence,
nous examinerons spécifiquement le type de support qu'Express
prend en charge pour la conception et l'implémentation d'un serveur basé sur l'API REST.
En particulier, nous allons également examiner le routeur Express,
et comment il nous permet de subdiviser notre application
puis de l'organiser en plusieurs applications de type mini Express,
qui se combinent pour former l'application Express, en
particulier lorsque nous traitons de diverses API REST et pièces.
Donc, pour résumer, dans la conférence précédente,
nous avons examiné REST en détail.
Nous avons également examiné comment chaque point de terminaison est identifié par un URI,
et comment nous pouvons spécifier les différentes opérations à effectuer sur
chaque point de terminaison en utilisant le verbe HTTP approprié,
GET, PUT, POST ou DELETE.
Maintenant, dans cette conférence,
nous allons voir comment Express prend en charge le développement d'un serveur API REST.
Nous examinerons la prise en charge d'Express pour diverses questions telles que app.all,
app.get, put, post et delete,
et comment ces méthodes peuvent être utilisées pour construire un serveur API REST.
Dans Express, les différents groupes d'applications peuvent être définis à l'aide de l'application,.
et les différentes méthodes.
Ainsi, l'app.all spécifie une opération qui doit être effectuée sur tous les différents verbes,
sur, dans et partie.
Ainsi, par exemple, dans cet exemple,
nous voyons que le point de terminaison est défini par /plats,
et donc app.all, tout ce qui est spécifié dans la fonction qui est donnée pour app.all,
sera appliqué à toutes les requêtes entrantes.
L' app.get spécifie ce qui doit être fait pour les requêtes GET et, en
conséquence, pour les
requêtes POST, PUT et DELETE qui sont envoyées au point de terminaison /plats,
comme indiqué dans cet exemple.
Express prend également en charge la définition des points de terminaison avec des paramètres.
Ainsi, par exemple, vous pouvez spécifier un ID de plat spécifique si vous le souhaitez,
puis laisser l'opération être effectuée pour
ce point de terminaison spécifique faisant référence à ce plat spécifique avec un ID de plat donné.
Donc, dans ce cas, l'ID plat lui-même est
spécifié en tant que paramètre et le modèle utilisé pour cela est,
comme vous le voyez dans cet exemple,
/dishes/ : et alors vous spécifiez le paramètre ici.
Pour qu'il soit facile pour nous de comprendre,
j'ai nommé le paramètre comme DisHID là-dedans.
Vous pouvez utiliser n'importe quel nom de paramètre que vous choisissez, mais encore
une fois, l'utilisation d'un nom significatif pour un paramètre facilite la compréhension du code.
Donc, dans cet exemple,
le:dishid signifie que si nous émettons une requête à un point de terminaison,
disons par exemple, /dishes/23,
alors le paramètre DishiD nous permet d'extraire ce nombre 23 afin que nous
puissions opérer sur le plat numéro 23 dans
la fonction qui est spécifiée dans cette méthode ici.
Ainsi, là, le paramètre,
le paramètre DisHID lui-même peut être obtenu en utilisant l'objet request sur lequel
la propriété params que vous avez supporté et
la propriété params prend en charge tous les paramètres de requête entrante,
et disHID, en particulier,
est l'un de ces paramètres de requête qui est accessible,
comme indiqué dans le code ici.
Lorsque vous envoyez une requête PUT ou POST du client au serveur,
vous enfermez souvent les données dans le corps du message envoyé au serveur.
Maintenant, ce qui signifie que nous avons besoin d'une méthode pour
extraire des informations du corps du message.
C' est donc là que le middleware de l'analyseur de corps pour Express est très utile.
Ainsi, l'analyseur de corps nous permet d'analyser les informations du corps du message.
Pour utiliser l'analyseur de corps, comme on s'y attendrait,
nous installons le module de noeud d'analyseur de corps,
puis le nécessiterions dans notre application Express,
puis spécifions app.use (BodyParser).
Et si le corps contient des données au format JSON,
vous pouvez dire Bodyparser.json,
ce qui signifie que cela analysera uniquement les données qui sont au
format JSON qui est enfermé dans le corps de ce message de requête.
En particulier, dans l'exercice,
nous analyserons les données entrantes qui sont envoyées sous la forme d'une chaîne JSON.
L' analyseur de corps, comme vous vous y attendez,
analyse le corps du message et remplit la propriété req.body.
Ainsi, sur la requête,
la propriété body contiendra tout ce qui est analysé à partir
du corps du message de requête par l'analyseur de corps.
Si vous implémentez une application Express
qui prend en charge plusieurs points de terminaison de l'API REST,
il est logique de subdiviser le code en
plusieurs modules, puis de les utiliser pour construire l'application Express globale.
Donc, c'est là où le routeur Express vient à notre aide.
Un routeur Express définit de nombreuses applications Express,
et au sein de ces nombreuses applications Express,
vous pouvez, par exemple,
traiter un point de terminaison d'API REST particulier plus en détail,
ou un modèle particulier de point de terminaison d'API REST plus en détail.
Ainsi, par exemple, nous pouvons définir un Dish.Router comme express.Router,
puis le Dish.Router peut alors gérer les points de terminaison.
Donc, lorsque vous exprimez quelque chose comme express.Router,
il prend en charge le point de terminaison de route.
L' une des raisons de l'utilisation du routeur Express,
comme vous le savez,
est que si nous utilisons les
méthodes standard GET, PUT, POST et DELETE,
pour chacune de ces méthodes,
vous devez spécifier explicitement les points de terminaison de l'API REST.
Un avantage de l'utilisation du routeur Express est que si vous
dites le router.route, puis spécifiez le point de terminaison,
ce point de terminaison sera appliqué à toutes les méthodes et toutes les différentes
méthodes liées au verbe GET, PUT, POST et DELETE peuvent toutes être enchaînées
ensemble dans la route en définissant le code pour notre application.
Nous examinerons plus de détails à ce sujet dans l'exercice qui suit cette conférence.
Avec cette compréhension rapide de la façon dont Express prend en charge le point de terminaison de l'API REST,
passons à l'exercice où nous allons construire
leur prise en charge pour le point de terminaison de l'API REST /plats. Dans le
cadre de la première affectation,
vous allez étendre
cette application Express pour prendre en charge des points de terminaison d'API REST supplémentaires,
y compris /promotions et /leaders.
Si vous avez suivi les cours précédents dans la spécialisation,
vous commencerez immédiatement à voir pourquoi nous prenons en charge
tous ces différents points de terminaison API REST sur un autre côté serveur.