Création d'API REST avec Node.js

160 cartes

Ce cours couvre la création d'API REST en utilisant Node.js, Express et MongoDB avec Mongoose, ainsi que des concepts avancés comme les middlewares, l'authentification JWT, et la documentation avec Swagger.

108 cartes

Réviser
Question

Qu'est-ce que Node.js ?

Retourner la carte
Réponse

Node.js est un environnement d'exécution JavaScript open-source, multi-plateforme, construit sur le moteur V8 de Chrome.

Question

Node.js est-il destiné à fonctionner dans un navigateur ?

Retourner la carte
Réponse

Non, Node.js est conçu pour être utilisé en dehors du navigateur, fonctionnant directement sur l'ordinateur ou le serveur.

Question

Quelles API Node.js prend-il en charge ?

Retourner la carte
Réponse

Node.js prend en charge des API serveur comme HTTP ou la manipulation de systèmes de fichiers.

Question

Comment décririez-vous l'environnement d'exécution de Node.js ?

Retourner la carte
Réponse

C'est un environnement asynchrone, piloté par les événements.

Question

Pourquoi Node.js est un bon choix pour les API REST ?

Retourner la carte
Réponse

Node.js est un excellent choix pour les API REST grâce à sa capacité à gérer simultanément de multiples requêtes de manière non bloquante.

Question

Quel avantage Node.js offre-t-il en termes de performances ?

Retourner la carte
Réponse

Node.js offre des performances incroyables, étant léger et basé sur le moteur V8 de Google Chrome.

Question

Comment Node.js gère-t-il la flexibilité pour les développeurs ?

Retourner la carte
Réponse

Il offre un vaste écosystème de bibliothèques open-source et permet aux développeurs JavaScript de concevoir le backend et le frontend.

Question

Quelle est l'une des lacunes de Node.js ?

Retourner la carte
Réponse

Node.js est médiocre pour les calculs lourds, car c'est une opération gourmande en CPU.

Question

Quel est un inconvénient lié à son modèle 'single thread' ?

Retourner la carte
Réponse

Son modèle 'single thread' peut entraîner des problèmes de performance avec de nombreuses tâches simultanées.

Question

Pourquoi le débogage est-il difficile avec Node.js ?

Retourner la carte
Réponse

Le débogage du code JavaScript peut être difficile, surtout avec des processus distribués.

Question

Comment installer Node.js ?

Retourner la carte
Réponse

On installe Node.js depuis le site officiel, ce qui inclut le runtime JavaScript de Node et NPM.

Question

Comment vérifier la version de Node.js installée ?

Retourner la carte
Réponse

Pour vérifier la version de Node.js, on utilise la commande node -v dans l'invite de commande.

Question

À quoi servent les modules dans Node.js ?

Retourner la carte
Réponse

Les modules encapsulent des blocs de code pour faciliter le débogage, la gestion et la réutilisation du code.

Question

Quels sont les deux systèmes de modules principaux de Node.js ?

Retourner la carte
Réponse

Les deux systèmes sont CommonJS (avec require et module.exports) et ECMAScript (avec import et export).

Question

Comment inclure un module de base comme http dans Node.js ?

Retourner la carte
Réponse

On utilise const http = require("http"), sans chemin relatif, sans installation préalable.

Question

Comment inclure un module local dans Node.js ?

Retourner la carte
Réponse

Pour un module local, on utilise require() avec le chemin relatif ou absolu du fichier.

Question

Comment inclure un module tiers comme Express ?

Retourner la carte
Réponse

On doit d'abord installer le module via NPM (ex: npm install express), puis l'inclure avec require("express").

Question

Comment activer les modules ECMAScript (import/export) ?

Retourner la carte
Réponse

Il faut ajouter "type":"module" au fichier package.json pour utiliser import et export.

Question

À quoi sert une fonction fléchée (arrow function) en JavaScript ?

Retourner la carte
Réponse

Les fonctions fléchées (ES6) sont une syntaxe concise pour écrire des fonctions, souvent utilisées pour les callbacks.

Question

Que représentent req et res dans un callback de serveur HTTP ?

Retourner la carte
Réponse

req représente l'objet de la requête envoyée par le client, et res représente la réponse renvoyée au client.

Question

Qu'est-ce qu'un callback en Node.js ?

Retourner la carte
Réponse

Un callback est une fonction passée en argument à une autre fonction, qui est ensuite invoquée pour effectuer une action.

Question

Comment accéder aux variables d'environnement dans Node.js ?

Retourner la carte
Réponse

On peut accéder aux variables d'environnement via l'objet global process.env.

Question

Comment lancer un serveur Node.js et détecter les modifications de fichiers ?

Retourner la carte
Réponse

On utilise nodemon server.js après avoir installé nodemon (npm install -g nodemon).

Question

Pourquoi utiliser Express.js pour les API REST ?

Retourner la carte
Réponse

Express.js simplifie la création d'API REST en fournissant un ensemble d'outils pour les applications web, requêtes HTTP et routage.

Question

Qu'est-ce qu'un middleware dans Express ?

Retourner la carte
Réponse

Un middleware est une fonction qui intercepte la requête et la réponse, pouvant les modifier avant de passer au middleware suivant via next().

Question

Qu'est-ce qu'une API REST ?

Retourner la carte
Réponse

Une API REST est un type d'interface qui facilite la communication entre applications via des requêtes HTTP, souvent avec des données JSON.

Question

Quels sont les verbes HTTP les plus courants pour les API REST ?

Retourner la carte
Réponse

Les verbes courants sont GET (récupérer), POST (créer), PUT/PATCH (mettre à jour) et DELETE (supprimer).

Question

Quel est le format de données le plus couramment utilisé avec les API REST ?

Retourner la carte
Réponse

Le format JSON (JavaScript Object Notation) est le plus souvent utilisé pour les réponses des API REST.

Question

Qu'est-ce que le event-loop en Node.js ?

Retourner la carte
Réponse

Le event-loop est un mécanisme qui gère les opérations asynchrones, permettant à Node.js de traiter de multiples requêtes sans bloquer.

Question

Quel est l'objectif de Mongoose dans une application Node.js ?

Retourner la carte
Réponse

Mongoose un ODM pour MongoDB, permettant de travailler avec des objets et de valider les données, simplifiant les interactions avec la base de données.

1 / 30
Voir les 108 cartes

Comment Express.js simplifie-t-il la création d'API REST ?

Express.js fournit des outils pour gérer les requêtes HTTP, le routage et les middlewares, rendant la création d'API REST plus rapide et facile.

À quoi sert un middleware dans Express.js ?

Un middleware est une fonction qui intercepte et peut modifier les requêtes ou réponses, puis passe le contrôle au middleware suivant.

Quel rôle jouent les variables d'environnement en Node.js ?

Les variables d'environnement (process.env) sécurisent et adaptent la configuration des applications sans modifier le code source pour chaque environnement.

Comment la méthode populate() de Mongoose enrichit-elle les documents ?

populate() permet d'inclure les données complètes des documents référencés dans d'autres collections, évitant des requêtes supplémentaires.

Quelle est la différence entre PUT et PATCH pour les API REST ?

PUT remplace entièrement une ressource, tandis que PATCH effectue une modification partielle de celle-ci.

Quel est le but de la documentation Swagger (OpenAPI) ?

Swagger (OpenAPI) sert à documenter les API de manière standardisée, facilitant leur compréhension et leur utilisation par les développeurs.

Quel est l'avantage principal de l'utilisation de express.Router() ?

express.Router() permet d'organiser le code des routes en mini-applications, améliorant la modularité et la maintenance.

Pourquoi utiliser bcrypt pour les mots de passe ?

bcrypt hache les mots de passe, assurant qu'ils ne sont pas stockés en clair et rendant difficile leur récupération en cas de fuite de données.

Qu'est-ce que le système de module par défaut de Node.js ?

Le système de module par défaut est CommonJS, utilisant require et module.exports, il existe aussi ECMAScript via import et export.

Comment inclure un module local en Node.js ?

Utilisez require() avec le chemin relatif ou absolu du fichier, par exemple require("./app").

Comment activer les modules ECMAScript (import/export) ?

Ajoutez "type":"module" au fichier package.json.

Quel est le rôle de http.createServer sans Express ?

Il permet de créer un serveur HTTP basique qui écoute les requêtes sans les fonctionnalités avancées d'Express.

Comment gérer les requêtes HTTP avec Express.js ?

Express.js fournit des outils pour gérer les requêtes et les réponses HTTP, y compris le routage.

Que signifie CORS et pourquoi est-il important ?

CORS signifie Cross Origin Resource Sharing; il bloque les appels HTTP entre serveurs différents pour des raisons de sécurité.

Comment Mongoose relie-t-il les documents dans différentes collections ?

Mongoose utilise la méthode populate() avec l'option ref dans le schéma pour référencer des documents.

Pourquoi les variables d'environnement sont-elles importantes ?

Elles sont importantes pour la séparation des préoccupations, la sécurité, la portabilité, l'évolutivité, la compatibilité et l'interopérabilité.

Quel est le rôle de dotenv-flow ?

dotenv-flow permet de gérer des variables d'environnement différentes selon le mode d'environnement (développement, production, test).

Quels sont les avantages de créer des composants dans la documentation Swagger ?

La création de composants permet de réutiliser les définitions de modèles et les descriptions de réponses, ce qui évite la répétition et améliore la maintenabilité.

Quels sont les deux systèmes de modules principaux de Node.js ?

Node.js utilise CommonJS (avec require et module.exports) et ECMAScript (avec import et export).

Comment inclure un module local en Node.js ?

Utilisez require() avec le chemin relatif ou absolu du fichier, par exemple require("./app").

Comment activer les modules ECMAScript (import/export) ?

Pour activer les modules ECMAScript, ajoutez "type":"module" au fichier package.json.

Que représentent req et res dans un callback de serveur HTTP ?

req représente l'objet de la requête client et res l'objet de la réponse serveur.

Pourquoi utiliser Express.js pour les API REST ?

Express.js simplifie la création d'API REST en fournissant des outils pour les applications web, requêtes HTTP et routage.

Qu'est-ce qu'une API REST ?

Une API REST permet la communication entre applications via des requêtes HTTP, souvent en JSON, pour transférer des données.

Quel est le format de données le plus couramment utilisé avec les API REST ?

Le format JSON (JavaScript Object Notation) est le plus souvent utilisé pour les réponses des API REST.

Quel est l'objectif de Mongoose dans une application Node.js ?

Mongoose est un ODM pour MongoDB qui facilite le travail avec des objets, la validation et la gestion des relations de données.

Quelle est la différence entre PUT et PATCH pour les API REST ?

PUT remplace une ressource, tandis que PATCH effectue une modification partielle d'une ressource existante.

Pourquoi utiliser bcrypt pour les mots de passe ?

bcrypt hache les mots de passe pour les stocker en toute sécurité et empêcher leur récupération en clair en cas de fuite.

Qu'est-ce que l'Event Loop en Node.js?

L'Event Loop est un mécanisme asynchrone qui permet à Node.js de traiter de multiples requêtes simultanément sans bloquer l'exécution du programme.

Comment Mongoose aide-t-il avec MongoDB?

Mongoose, un ODM pour MongoDB, simplifie les interactions avec la base de données en permettant de travailler avec des objets et de valider les données.

Quel est le rôle d'un middleware dans Express.js?

Un middleware est une fonction qui peut intercepter et modifier les requêtes et les réponses, puis passer le contrôle au middleware suivant.

Pourquoi utiliser des variables d'environnement en Node.js?

Les variables d'environnement (process.env) sécurisent et adaptent la configuration des applications sans modifier le code source par environnement.

Que fait la méthode populate() de Mongoose?

La méthode populate() de Mongoose enrichit les documents en incluant les données complètes des documents référencés, évitant des requêtes supplémentaires.

Différence entre PUT et PATCH en API REST?

PUT remplace une ressource, tandis que PATCH effectue une modification partielle d'une ressource existante.

Quel est le but de la documentation Swagger?

Swagger (OpenAPI) sert à documenter les API de manière standardisée, facilitant leur compréhension et leur utilisation par les développeurs.

Avantage de express.Router()?

express.Router() permet d'organiser les routes en mini-applications, ce qui améliore la modularité et la maintenabilité du code.

Pourquoi utiliser bcrypt pour les mots de passe?

bcrypt hache les mots de passe, assurant ainsi qu'ils ne sont pas stockés en clair et sont protégés en cas de fuite de données.

Qu'est-ce que la validation en Mongoose?

La validation en Mongoose vérifie l'intégrité des données via des validateurs intégrés ou personnalisés avant l'enregistrement dans la base de données.

Qu'est-ce que l'asynchrone en Node.js ?

En Node.js, l'asynchrone signifie que l'exécution des tâches ne bloque pas, permettant au programme de continuer d'autres opérations pendant qu'il attend les résultats.

Comment vérifier la version de Node.js ?

Pour vérifier la version de Node.js, utilisez la commande node -v dans votre terminal.

Quel est le rôle de NPM ?

NPM (Node Package Manager) est le gestionnaire de paquets par défaut pour Node.js, il permet d'installer et de gérer les dépendances des projets.

Qu'est-ce qu'un module de base en Node.js ?

Un module de base est un module intégré à Node.js, comme http ou fs, ne nécessitant aucune installation préalable pour être utilisé.

Comment inclure un module tiers ?

Pour inclure un module tiers, vous devez d'abord l'installer via NPM (ex: npm install express), puis l'importer avec require("express").

À quoi servent les fonctions fléchées (arrow functions) ?

Les fonctions fléchées (ES6) offrent une syntaxe concise pour écrire des fonctions, souvent employées pour des callbacks, avec une gestion du this lexicale.

Quel package est utilisé pour les variables d'environnement ?

Le package dotenv permet de charger des variables d'environnement à partir d'un fichier .env dans process.env.

Comment lancer un serveur Node.js et détecter les modifications de fichiers ?

Pour lancer un serveur Node.js et détecter les modifications de fichiers, utilisez nodemon server.js après l'installation de nodemon.

Quel code de statut indique une ressource créée ?

Le code de statut 201 Created indique que la requête a réussi et qu'une nouvelle ressource a été créée, typiquement avec une requête POST.

Quel est le but de JSON Web Token (JWT) ?

Un JWT est un jeton d'accès sécurisé pour l'échange de données, permettant d'identifier un utilisateur et ses droits sans session côté serveur.

Quels sont les trois types de modules dans Node.js ?

Node.js propose des modules de base (intégrés), des modules locaux (créés par le développeur) et des modules tiers (installés via NPM).

Qu'est-ce qu'une fonction fléchée en JavaScript ?

Les fonctions fléchées sont une syntaxe concise (ES6) pour écrire des fonctions, souvent utilisées pour les callbacks et gèrent le this lexicalement.

Quel est l'objectif de process.env ?

process.env permet d'accéder aux variables d'environnement, essentielles pour sécuriser et configurer les applications sans modifier le code source.

Comment lancer un serveur Node.js avec détection des modifications ?

Utilisez nodemon server.js après avoir installé le package nodemon via NPM, pour redémarrer automatiquement le serveur après chaque modification.

Qu'est-ce que l'erreur CORS (Cross-Origin Resource Sharing) ?

CORS est un mécanisme de sécurité qui bloque les requêtes HTTP entre des origines différentes, empêchant l'accès non autorisé aux ressources sensibles.

Pourquoi utiliser express.json() ?

express.json() est un middleware qui analyse les requêtes HTTP avec un corps JSON, rendant les données disponibles via req.body.

Quelle est la différence entre PUT et PATCH ?

PUT remplace entièrement une ressource, tandis que PATCH effectue une modification partielle des données d'une ressource existante.

A quoi sert les components dans Swagger ?

Les composants dans Swagger permettent de réutiliser des définitions (schemas, réponses) pour éviter la répétition et améliorer la maintenabilité de la documentation.

Comment Postman gère-t-il les variables ?

Postman supporte les variables globales (pour tout le workspace), les variables d'environnement (par environnement) et les variables de collection (par collection).

Pourquoi les variables d'environnement sont-elles importantes ?

Elles assurent la séparation des préoccupations, la sécurité, la portabilité et la flexibilité, permettant à l'application de s'adapter sans modifier le code source.

Quel est le but de Mongoose en Node.js ?

Mongoose est un ODM (Object Document Mapper) pour MongoDB qui facilite la manipulation des données, la validation des formats et la gestion des relations.

À quoi sert un middleware dans Express.js ?

Un middleware est une fonction qui intercepte et peut modifier les requêtes et les réponses HTTP, puis transfère le contrôle au middleware suivant.

Comment fonctionnent PUT et PATCH dans les API REST ?

PUT remplace une ressource, tandis que PATCH applique une modification partielle à une ressource existante.

Pourquoi utiliser bcrypt pour les mots de passe ?

Bcrypt hache les mots de passe pour les stocker en toute sécurité. Cela empêche leur récupération directe même en cas de fuite de données.

Qu'est-ce que l'Event Loop en Node.js ?

L'Event Loop est un mécanisme asynchrone qui permet à Node.js de gérer de multiples requêtes simultanément sans bloquer l'exécution des tâches.

Quelle est l'utilité des variables d'environnement en Node.js ?

Les variables d'environnement (process.env) permettent de stocker des configurations sensibles ou spécifiques à l'environnement sans modifier le code source.

Comment la méthode populate() de Mongoose fonctionne-t-elle ?

Populate() remplace les ID référencés dans un document par les documents complets auxquels ils se réfèrent, simplifiant les jointures.

Quel est l'avantage principal d'utiliser express.Router() ?

express.Router() permet d'organiser les routes de l'application en modules plus petits, ce qui améliore la modularité et la maintenabilité du code.

Que fait la validation Mongoose ?

La validation Mongoose assure l'intégrité des données en vérifiant qu'elles respectent les règles définies dans le schéma avant de les enregistrer.

Quel est le but de Swagger (OpenAPI) ?

Swagger (OpenAPI) permet de documenter les API de manière standardisée, facilitant leur compréhension, leur test et leur utilisation par les développeurs.

Qu'est-ce que l'Event Loop en Node.js?

L'Event Loop est un mécanisme asynchrone qui permet à Node.js de traiter de multiples requêtes simultanément sans bloquer l'exécution du programme.

Comment Mongoose aide-t-il avec MongoDB?

Mongoose, un ODM pour MongoDB, simplifie les interactions avec la base de données en permettant de travailler avec des objets et de valider les données.

Quel rôle joue un middleware dans Express.js?

Un middleware est une fonction qui peut intercepter et modifier les requêtes et les réponses, puis passer le contrôle au middleware suivant.

Pourquoi utiliser des variables d'environnement en Node.js?

Les variables d'environnement (process.env) sécurisent et adaptent la configuration des applications sans modifier le code source par environnement.

Que fait la méthode populate() de Mongoose?

La méthode populate() de Mongoose enrichit les documents en incluant les données complètes des documents référencés, évitant des requêtes supplémentaires.

Différence entre PUT et PATCH en API REST?

PUT remplace une ressource, tandis que PATCH effectue une modification partielle d'une ressource existante.

Quel est le but de la documentation Swagger?

Swagger (OpenAPI) sert à documenter les API de manière standardisée, facilitant leur compréhension et leur utilisation par les développeurs.

Avantage de express.Router()?

express.Router() permet d'organiser les routes en mini-applications, ce qui améliore la modularité et la maintenabilité du code.

Pourquoi utiliser bcrypt pour les mots de passe?

bcrypt hache les mots de passe, assurant ainsi qu'ils ne sont pas stockés en clair et sont protégés en cas de fuite de données.

Qu'est-ce que la validation en Mongoose?

La validation en Mongoose vérifie l'intégrité des données via des validateurs intégrés ou personnalisés avant l'enregistrement dans la base de données.

Teste ta compréhension

1 / 10

Quelles sont des entreprises de renom qui utilisent la technologie Node.js ?

Continue avec ces leçons