TD10
TD10
TD10
Introduction
La création d'applications du monde réel dans le langage JavaScript nécessite une programmation
dynamique, où la taille de l'application JavaScript augmente de manière incontrôlable. De nouvelles
fonctionnalités et mises à jour sont publiées et vous devez corriger les bogues pour maintenir le
code.
Pour exécuter cela, de nouveaux développeurs doivent être ajoutés au projet, ce qui devient
compliqué. La structure des modules et des packages est incapable de réduire et de simplifier
l'application. Pour exécuter l'application en douceur, il est essentiel de convertir la grande structure
homogène en petits morceaux de programmes indépendants. De telles complexités peuvent être
résolues sans effort lorsque les applications JavaScript sont construites sur des microservices,
d'autant plus avec l'écosystème Node.js.
La première chose que nous allons faire est d'importer le package express dans le fichier. Nous
allons l'utiliser pour créer un nouvel objet app. Nous préciserons également le port.
La ligne suivante apporte un objet "routes" du fichier route.js dans le dossier api. Nous utiliserons
cet objet comme middleware pour exécuter la fonction de rappel qui définit les routes pour notre
application. Enfin, nous dirons à l'application de commencer à écouter sur le port que nous avons
défini et d'afficher un message sur la console lorsque ce processus est terminé.
Étape 5: Définir la route
L'étape suivante consiste à définir les routes pour le serveur et à attribuer chacune à une cible dans
notre objet contrôleur. Nous allons construire le contrôleur à l'étape suivante. Nous aurons un point
de terminaison. Un point de terminaison de distance qui inclut deux paramètres de chemin (path),
les deux codes postaux. Ce point de terminaison renvoie la distance, en km, entre ces deux codes
postaux aux États-Unis.
Ajoutez le code suivant à route.js:
const Controller = require("./controller")
const express = require("express");
let router = express.Router();
router.get("/distance/:zipcode1/:zipcode2",Controller.getDistance);
module.exports = router;
Nous passerons les objets de requête et de réponse à la fonction find dans ce module. Cette fonction
comprend également une fonction de rappel (callback). Cette fonction accepte un objet d'erreur
(error) et un objet de données (data). S'il y a une erreur dans la réponse, nous retournons -1 dans
notre réponse ; sinon, nous renvoyons les résultats de la fonction.
Afin d'envoyer une requête http get, nous allons utiliser le module axios. Reportez-vous à cette
documentation pour savoir comment utiliser axios:
https://axios-http.com/docs/api_intro
https://github.com/axios/axios
Nous utiliserons l'API de distance fournie par ZipCodeAPI.com. Une étape importante à faire est
d'obtenir une clé API pour utiliser cette API, et c'est gratuit si vous vous inscrivez. Envisagez de
vous inscrire et d'obtenir une clé API en utilisant ce lien: https://www.zipcodeapi.com/register
Lorsque vous obtenez votre clé, remplacez la variable APP_KEY par votre clé.
Vous pouvez vous référer à cette documentation API pour tester l'API de distance:
https://www.zipcodeapi.com/API