Lektionen
Zu Diane

Création d'API REST avec Node.js

108 Karten

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 Karten

Wiederholen
Verteiltes Wiederholen zeigt dir jede Karte zum optimalen Zeitpunkt zum Auswendiglernen, mit schrittweise größer werdenden Wiederholungsabständen.
Frage
Qu'est-ce que Node.js ?
Antwort
Node.js est un environnement d'exécution JavaScript open-source, multi-plateforme, construit sur le moteur V8 de Chrome.
Frage
Node.js est-il destiné à fonctionner dans un navigateur ?
Antwort
Non, Node.js est conçu pour être utilisé en dehors du navigateur, fonctionnant directement sur l'ordinateur ou le serveur.
Frage
Quelles API Node.js prend-il en charge ?
Antwort
Node.js prend en charge des API serveur comme HTTP ou la manipulation de systèmes de fichiers.
Frage
Comment décririez-vous l'environnement d'exécution de Node.js ?
Antwort
C'est un environnement asynchrone, piloté par les événements.
Frage
Pourquoi Node.js est un bon choix pour les API REST ?
Antwort
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.
Frage
Quel avantage Node.js offre-t-il en termes de performances ?
Antwort
Node.js offre des performances incroyables, étant léger et basé sur le moteur V8 de Google Chrome.
Frage
Comment Node.js gère-t-il la flexibilité pour les développeurs ?
Antwort
Il offre un vaste écosystème de bibliothèques open-source et permet aux développeurs JavaScript de concevoir le backend et le frontend.
Frage
Quelle est l'une des lacunes de Node.js ?
Antwort
Node.js est médiocre pour les calculs lourds, car c'est une opération gourmande en CPU.
Frage
Quel est un inconvénient lié à son modèle 'single thread' ?
Antwort
Son modèle 'single thread' peut entraîner des problèmes de performance avec de nombreuses tâches simultanées.
Frage
Pourquoi le débogage est-il difficile avec Node.js ?
Antwort
Le débogage du code JavaScript peut être difficile, surtout avec des processus distribués.
Frage
Comment installer Node.js ?
Antwort
On installe Node.js depuis le site officiel, ce qui inclut le runtime JavaScript de Node et NPM.
Frage
Comment vérifier la version de Node.js installée ?
Antwort
Pour vérifier la version de Node.js, on utilise la commande `node -v` dans l'invite de commande.
Frage
À quoi servent les modules dans Node.js ?
Antwort
Les modules encapsulent des blocs de code pour faciliter le débogage, la gestion et la réutilisation du code.
Frage
Quels sont les deux systèmes de modules principaux de Node.js ?
Antwort
Les deux systèmes sont CommonJS (avec `require` et `module.exports`) et ECMAScript (avec `import` et `export`).
Frage
Comment inclure un module de base comme `http` dans Node.js ?
Antwort
On utilise `const http = require("http")`, sans chemin relatif, sans installation préalable.
Frage
Comment inclure un module local dans Node.js ?
Antwort
Pour un module local, on utilise `require()` avec le chemin relatif ou absolu du fichier.
Frage
Comment inclure un module tiers comme Express ?
Antwort
On doit d'abord installer le module via NPM (ex: `npm install express`), puis l'inclure avec `require("express")`.
Frage
Comment activer les modules ECMAScript (import/export) ?
Antwort
Il faut ajouter `"type":"module"` au fichier `package.json` pour utiliser `import` et `export`.
Frage
À quoi sert une fonction fléchée (arrow function) en JavaScript ?
Antwort
Les fonctions fléchées (ES6) sont une syntaxe concise pour écrire des fonctions, souvent utilisées pour les callbacks.
Frage
Que représentent `req` et `res` dans un callback de serveur HTTP ?
Antwort
`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.
Frage
Qu'est-ce qu'un callback en Node.js ?
Antwort
Un callback est une fonction passée en argument à une autre fonction, qui est ensuite invoquée pour effectuer une action.
Frage
Comment accéder aux variables d'environnement dans Node.js ?
Antwort
On peut accéder aux variables d'environnement via l'objet global `process.env`.
Frage
Comment lancer un serveur Node.js et détecter les modifications de fichiers ?
Antwort
On utilise `nodemon server.js` après avoir installé `nodemon` (`npm install -g nodemon`).
Frage
Pourquoi utiliser Express.js pour les API REST ?
Antwort
Express.js simplifie la création d'API REST en fournissant un ensemble d'outils pour les applications web, requêtes HTTP et routage.
Frage
Qu'est-ce qu'un middleware dans Express ?
Antwort
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()`.
Frage
Qu'est-ce qu'une API REST ?
Antwort
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.
Frage
Quels sont les verbes HTTP les plus courants pour les API REST ?
Antwort
Les verbes courants sont GET (récupérer), POST (créer), PUT/PATCH (mettre à jour) et DELETE (supprimer).
Frage
Quel est le format de données le plus couramment utilisé avec les API REST ?
Antwort
Le format JSON (JavaScript Object Notation) est le plus souvent utilisé pour les réponses des API REST.
Frage
Qu'est-ce que le `event-loop` en Node.js ?
Antwort
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.
Frage
Quel est l'objectif de Mongoose dans une application Node.js ?
Antwort
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.
Frage
Comment Express.js simplifie-t-il la création d'API REST ?
Antwort
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.
Frage
À quoi sert un middleware dans Express.js ?
Antwort
Un middleware est une fonction qui intercepte et peut modifier les requêtes ou réponses, puis passe le contrôle au middleware suivant.
Frage
Quel rôle jouent les variables d'environnement en Node.js ?
Antwort
Les variables d'environnement (`process.env`) sécurisent et adaptent la configuration des applications sans modifier le code source pour chaque environnement.
Frage
Comment la méthode `populate()` de Mongoose enrichit-elle les documents ?
Antwort
`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.
Frage
Quelle est la différence entre `PUT` et `PATCH` pour les API REST ?
Antwort
`PUT` remplace entièrement une ressource, tandis que `PATCH` effectue une modification partielle de celle-ci.
Frage
Quel est le but de la documentation Swagger (OpenAPI) ?
Antwort
Swagger (OpenAPI) sert à documenter les API de manière standardisée, facilitant leur compréhension et leur utilisation par les développeurs.
Frage
Quel est l'avantage principal de l'utilisation de `express.Router()` ?
Antwort
`express.Router()` permet d'organiser le code des routes en mini-applications, améliorant la modularité et la maintenance.
Frage
Pourquoi utiliser `bcrypt` pour les mots de passe ?
Antwort
`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.
Frage
Qu'est-ce que le système de module par défaut de Node.js ?
Antwort
Le système de module par défaut est CommonJS, utilisant `require` et `module.exports`, il existe aussi ECMAScript via `import` et `export`.
Frage
Comment inclure un module local en Node.js ?
Antwort
Utilisez `require()` avec le chemin relatif ou absolu du fichier, par exemple `require("./app")`.
Frage
Comment activer les modules ECMAScript (import/export) ?
Antwort
Ajoutez `"type":"module"` au fichier `package.json`.
Frage
Quel est le rôle de http.createServer sans Express ?
Antwort
Il permet de créer un serveur HTTP basique qui écoute les requêtes sans les fonctionnalités avancées d'Express.
Frage
Comment gérer les requêtes HTTP avec Express.js ?
Antwort
Express.js fournit des outils pour gérer les requêtes et les réponses HTTP, y compris le routage.
Frage
Que signifie CORS et pourquoi est-il important ?
Antwort
CORS signifie Cross Origin Resource Sharing; il bloque les appels HTTP entre serveurs différents pour des raisons de sécurité.
Frage
Comment Mongoose relie-t-il les documents dans différentes collections ?
Antwort
Mongoose utilise la méthode `populate()` avec l'option `ref` dans le schéma pour référencer des documents.
Frage
Pourquoi les variables d'environnement sont-elles importantes ?
Antwort
Elles sont importantes pour la séparation des préoccupations, la sécurité, la portabilité, l'évolutivité, la compatibilité et l'interopérabilité.
Frage
Quel est le rôle de dotenv-flow ?
Antwort
`dotenv-flow` permet de gérer des variables d'environnement différentes selon le mode d'environnement (développement, production, test).
Frage
Quels sont les avantages de créer des composants dans la documentation Swagger ?
Antwort
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é.
Frage
Quels sont les deux systèmes de modules principaux de Node.js ?
Antwort
Node.js utilise CommonJS (avec `require` et `module.exports`) et ECMAScript (avec `import` et `export`).
Frage
Comment inclure un module local en Node.js ?
Antwort
Utilisez `require()` avec le chemin relatif ou absolu du fichier, par exemple `require("./app")`.
Frage
Comment activer les modules ECMAScript (import/export) ?
Antwort
Pour activer les modules ECMAScript, ajoutez `"type":"module"` au fichier `package.json`.
Frage
Que représentent req et res dans un callback de serveur HTTP ?
Antwort
req représente l'objet de la requête client et res l'objet de la réponse serveur.
Frage
Pourquoi utiliser Express.js pour les API REST ?
Antwort
Express.js simplifie la création d'API REST en fournissant des outils pour les applications web, requêtes HTTP et routage.
Frage
Qu'est-ce qu'une API REST ?
Antwort
Une API REST permet la communication entre applications via des requêtes HTTP, souvent en JSON, pour transférer des données.
Frage
Quel est le format de données le plus couramment utilisé avec les API REST ?
Antwort
Le format JSON (JavaScript Object Notation) est le plus souvent utilisé pour les réponses des API REST.
Frage
Quel est l'objectif de Mongoose dans une application Node.js ?
Antwort
Mongoose est un ODM pour MongoDB qui facilite le travail avec des objets, la validation et la gestion des relations de données.
Frage
Quelle est la différence entre `PUT` et `PATCH` pour les API REST ?
Antwort
PUT remplace une ressource, tandis que PATCH effectue une modification partielle d'une ressource existante.
Frage
Pourquoi utiliser `bcrypt` pour les mots de passe ?
Antwort
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.
Frage
Qu'est-ce que l'Event Loop en Node.js?
Antwort
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.
Frage
Comment Mongoose aide-t-il avec MongoDB?
Antwort
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.
Frage
Quel est le rôle d'un middleware dans Express.js?
Antwort
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.
Frage
Comment lancer un serveur Node.js avec détection des modifications ?
Antwort
Utilisez `nodemon server.js` après avoir installé le package `nodemon` via NPM, pour redémarrer automatiquement le serveur après chaque modification.
Frage
Pourquoi utiliser des variables d'environnement en Node.js?
Antwort
Les variables d'environnement (`process.env`) sécurisent et adaptent la configuration des applications sans modifier le code source par environnement.
Frage
Que fait la méthode `populate()` de Mongoose?
Antwort
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.
Frage
Différence entre PUT et PATCH en API REST?
Antwort
PUT remplace une ressource, tandis que PATCH effectue une modification partielle d'une ressource existante.
Frage
Quel est le but de la documentation Swagger?
Antwort
Swagger (OpenAPI) sert à documenter les API de manière standardisée, facilitant leur compréhension et leur utilisation par les développeurs.
Frage
Avantage de `express.Router()`?
Antwort
`express.Router()` permet d'organiser les routes en mini-applications, ce qui améliore la modularité et la maintenabilité du code.
Frage
Pourquoi utiliser `bcrypt` pour les mots de passe?
Antwort
`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.
Frage
Qu'est-ce que la validation en Mongoose?
Antwort
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.
Frage
Qu'est-ce que l'asynchrone en Node.js ?
Antwort
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.
Frage
Comment vérifier la version de Node.js ?
Antwort
Pour vérifier la version de Node.js, utilisez la commande `node -v` dans votre terminal.
Frage
Quel est le rôle de NPM ?
Antwort
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.
Frage
Qu'est-ce qu'un module de base en Node.js ?
Antwort
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é.
Frage
Comment inclure un module tiers ?
Antwort
Pour inclure un module tiers, vous devez d'abord l'installer via NPM (ex: `npm install express`), puis l'importer avec `require("express")`.
Frage
À quoi servent les fonctions fléchées (arrow functions) ?
Antwort
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.
Frage
Quel package est utilisé pour les variables d'environnement ?
Antwort
Le package `dotenv` permet de charger des variables d'environnement à partir d'un fichier `.env` dans `process.env`.
Frage
Comment lancer un serveur Node.js et détecter les modifications de fichiers ?
Antwort
Pour lancer un serveur Node.js et détecter les modifications de fichiers, utilisez `nodemon server.js` après l'installation de `nodemon`.
Frage
Quel code de statut indique une ressource créée ?
Antwort
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.
Frage
Quel est le but de JSON Web Token (JWT) ?
Antwort
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.
Frage
Quels sont les trois types de modules dans Node.js ?
Antwort
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).
Frage
Qu'est-ce qu'une fonction fléchée en JavaScript ?
Antwort
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.
Frage
Quel est l'objectif de `process.env` ?
Antwort
`process.env` permet d'accéder aux variables d'environnement, essentielles pour sécuriser et configurer les applications sans modifier le code source.
Frage
Qu'est-ce que l'erreur CORS (Cross-Origin Resource Sharing) ?
Antwort
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.
Frage
Pourquoi utiliser `express.json()` ?
Antwort
`express.json()` est un middleware qui analyse les requêtes HTTP avec un corps JSON, rendant les données disponibles via `req.body`.
Frage
Quelle est la différence entre `PUT` et `PATCH` ?
Antwort
`PUT` remplace entièrement une ressource, tandis que `PATCH` effectue une modification partielle des données d'une ressource existante.
Frage
A quoi sert les `components` dans Swagger ?
Antwort
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.
Frage
Comment Postman gère-t-il les variables ?
Antwort
Postman supporte les variables globales (pour tout le workspace), les variables d'environnement (par environnement) et les variables de collection (par collection).
Frage
Pourquoi les variables d'environnement sont-elles importantes ?
Antwort
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.
Frage
Quel est le but de Mongoose en Node.js ?
Antwort
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.
Frage
À quoi sert un middleware dans Express.js ?
Antwort
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.
Frage
Comment fonctionnent PUT et PATCH dans les API REST ?
Antwort
PUT remplace une ressource, tandis que PATCH applique une modification partielle à une ressource existante.
Frage
Pourquoi utiliser bcrypt pour les mots de passe ?
Antwort
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.
Frage
Qu'est-ce que l'Event Loop en Node.js ?
Antwort
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.
Frage
Quelle est l'utilité des variables d'environnement en Node.js ?
Antwort
Les variables d'environnement (process.env) permettent de stocker des configurations sensibles ou spécifiques à l'environnement sans modifier le code source.
Frage
Comment la méthode populate() de Mongoose fonctionne-t-elle ?
Antwort
Populate() remplace les ID référencés dans un document par les documents complets auxquels ils se réfèrent, simplifiant les jointures.
Frage
Quel est l'avantage principal d'utiliser express.Router() ?
Antwort
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.
Frage
Que fait la validation Mongoose ?
Antwort
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.
Frage
Quel est le but de Swagger (OpenAPI) ?
Antwort
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.
Frage
Qu'est-ce que l'Event Loop en Node.js?
Antwort
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.
Frage
Comment Mongoose aide-t-il avec MongoDB?
Antwort
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.
Frage
Quel rôle joue un middleware dans Express.js?
Antwort
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.
Frage
Pourquoi utiliser des variables d'environnement en Node.js?
Antwort
Les variables d'environnement (`process.env`) sécurisent et adaptent la configuration des applications sans modifier le code source par environnement.
Frage
Que fait la méthode `populate()` de Mongoose?
Antwort
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.
Frage
Différence entre PUT et PATCH en API REST?
Antwort
PUT remplace une ressource, tandis que PATCH effectue une modification partielle d'une ressource existante.
Frage
Quel est le but de la documentation Swagger?
Antwort
Swagger (OpenAPI) sert à documenter les API de manière standardisée, facilitant leur compréhension et leur utilisation par les développeurs.
Frage
Avantage de `express.Router()`?
Antwort
`express.Router()` permet d'organiser les routes en mini-applications, ce qui améliore la modularité et la maintenabilité du code.
Frage
Pourquoi utiliser `bcrypt` pour les mots de passe?
Antwort
`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.
Frage
Qu'est-ce que la validation en Mongoose?
Antwort
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.

Quiz starten

Teste dein Wissen mit interaktiven Fragen