Création d'une API de nouvelles avec Node.js

JavaScriptBeginner
Pratiquer maintenant

Introduction

Dans ce projet, vous allez apprendre à créer une simple API de nouvelles à l'aide de Node.js. Vous allez apprendre à créer un serveur, à gérer différentes routes et à renvoyer des données de nouvelles au format spécifique.

👀 Aperçu

curl http://localhost:8080/news
## Sortie :
## [{"channelId":"5572a108b3cdc86cf39001cd","name":"National Focus"},{"channelId":"5572a108b3cdc86cf39001ce","name":"International Focus"}]

curl http://localhost:8080
## Sortie :
## 404

🎯 Tâches

Dans ce projet, vous allez apprendre :

  • Comment créer un serveur à l'aide de Node.js
  • Comment gérer la route /news et renvoyer des données de nouvelles
  • Comment gérer les autres routes et renvoyer une réponse 404

🏆 Réalisations

Après avoir terminé ce projet, vous serez capable de :

  • Comprendre les bases de la création d'un serveur à l'aide de Node.js
  • Implémenter une simple API pour renvoyer des données de nouvelles
  • Gérer différentes routes et fournir des réponses appropriées

Créer un serveur

Pour commencer, ouvrez l'éditeur. Vous devriez voir un fichier dans l'éditeur - "app.js".

Dans cette étape, vous allez apprendre à créer un serveur à l'aide de Node.js. Suivez les étapes ci-dessous pour terminer cette étape :

  1. Ouvrez le fichier app.js dans votre environnement de codage.

  2. Importez le module http, qui fournit la fonctionnalité pour créer un serveur :

    const http = require("http");
    
  3. Créez un nouveau serveur à l'aide de la méthode createServer() :

    const serve = http.createServer();
    
  4. Ajoutez un écouteur d'événements au serveur pour gérer les requêtes entrantes :

    serve.on("request", (req, res) => {
      // TODO : Ajoutez du code pour gérer la requête
    });
    
  5. Démarrez le serveur et écoutez sur le port 8080 :

    serve.listen(8080, () => {
      console.log("Le service a été démarré!");
    });
    

Gérer la route /news

Dans cette étape, vous allez apprendre à gérer la route /news et à renvoyer des données de nouvelles. Suivez les étapes ci-dessous pour terminer cette étape :

  1. Dans l'écouteur d'événements de requête, définissez l'en-tête de réponse pour utiliser le format utf8 :

    res.setHeader("Content-type", "text/html;charset=utf8");
    
  2. Vérifiez l'URL demandée :

    if (req.url == "/news") {
      // Gérer la route /news
    } else {
      // Gérer les autres routes
    }
    
  3. Préparez les données de nouvelles au format requis :

    const data = [
      {
        channelId: "5572a108b3cdc86cf39001cd",
        name: "National Focus"
      },
      {
        channelId: "5572a108b3cdc86cf39001ce",
        name: "International Focus"
      }
    ];
    
  4. Envoyez les données de nouvelles en tant que réponse :

    res.end(JSON.stringify(data));
    

Gérer les autres routes

Dans cette étape, vous allez apprendre à gérer les autres routes qui ne sont pas /news.

  1. Dans l'écouteur d'événements de requête, ajoutez un bloc else pour gérer les autres routes :

    if (req.url == "/news") {
      // Gérer la route /news
      //...
    } else {
      // Gérer les autres routes
      res.end("404");
    }
    
  2. Dans le bloc else, envoyez une réponse 404 pour indiquer que la route demandée n'a pas été trouvée.

Maintenant, votre fichier app.js devrait ressembler à ceci :

const http = require("http");
const serve = http.createServer();

serve.on("request", (req, res) => {
  // TODO: Ajoutez du code pour gérer la requête
  res.setHeader("Content-type", "text/html;charset=utf8");
  console.log(req.url);
  if (req.url == "/news") {
    const data = [
      {
        channelId: "5572a108b3cdc86cf39001cd",
        name: "National Focus"
      },
      {
        channelId: "5572a108b3cdc86cf39001ce",
        name: "International Focus"
      }
    ];

    res.end(JSON.stringify(data));
  } else {
    res.end("404");
  }
});

serve.listen(8080, () => {
  console.log("Le service a été démarré!");
});

Tester le serveur

  1. Lancez le serveur à l'aide de la commande suivante dans le terminal :

    node app.js
    
  2. Ouvrez à nouveau un nouveau terminal et vérifiez que le terminal est correct avec la commande suivante :

curl http://localhost:8080/news
## Sortie :
## [{"channelId":"5572a108b3cdc86cf39001cd","name":"National Focus"},{"channelId":"5572a108b3cdc86cf39001ce","name":"International Focus"}]

curl http://localhost:8080
## Sortie :
## 404

Félicitations! Vous avez réussi à créer une API de nouvelles à l'aide de Node.js.

Résumé

Félicitations! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires dans LabEx pour améliorer vos compétences.

✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer