API EXPRESS Flashcards

1
Q

Qu’est-ce qu’une API et quel est son avantage principal dans le développement d’applications web?

A

Une API (Application Programming Interface) est un ensemble de fonctions permettant à des applications de communiquer entre elles. Son avantage principal est de faciliter l’accès et la manipulation des données depuis plusieurs applications différentes, permettant une séparation claire entre frontend et backend.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quelle différence y a-t-il entre une API web et une bibliothèque JavaScript?

A

Une API web est hébergée sur un serveur et accessible via HTTP/HTTPS, permettant à des applications diverses d’y accéder indépendamment de leur langage de programmation. Une bibliothèque JavaScript est un ensemble de fonctions utilisables directement dans le code JavaScript d’une application, s’exécutant localement.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Pourquoi Express est-il qualifié de “micro-framework”?

A

Express est qualifié de micro-framework car il fournit uniquement les fonctionnalités essentielles pour le développement web (routage, gestion des requêtes/réponses) sans imposer de structure de projet ni inclure des fonctionnalités comme l’ORM ou les templates, contrairement aux frameworks plus complets.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Quels sont les avantages et inconvénients principaux d’Express par rapport à d’autres frameworks Node.js?

A

Avantages: légèreté, flexibilité, performances, grande communauté. Inconvénient principal: sa flexibilité nécessite une bonne connaissance des bonnes pratiques car il n’impose pas de structure, ce qui peut mener à du code désorganisé.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Comment établir une route basique avec Express et quels sont les paramètres de la fonction de callback?

A

Une route basique est créée avec la syntaxe app.get(‘/chemin’, (req, res) => { … }). Les paramètres de la fonction de callback sont:
* req: objet représentant la requête HTTP entrante
* res: objet représentant la réponse HTTP à envoyer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Expliquez la différence entre les paramètres de route et les query strings dans Express.

A

Les paramètres de route font partie de l’URL et sont définis avec des marqueurs (ex: /users/:id) pour représenter des valeurs variables dans le chemin. Ils sont accessibles via req.params. Les query strings sont des paires clé-valeur ajoutées à la fin de l’URL après un point d’interrogation (ex: /users?role=admin). Ils sont accessibles via req.query.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Comment implémenter un système de filtrage et de pagination dans une API Express?

A

Pour un système de filtrage et pagination: app.get(‘/products’, (req, res) => { const page = parseInt(req.query.page) || 1; const limit = parseInt(req.query.limit) || 10; const category = req.query.category; let filteredProducts = […products]; if (category) { filteredProducts = filteredProducts.filter(p => p.category === category); } const startIndex = (page - 1) * limit; const paginatedProducts = filteredProducts.slice(startIndex, startIndex + limit); res.json({ total: filteredProducts.length, page, limit, data: paginatedProducts });});

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Comment gérer les erreurs de façon élégante dans une API Express?

A

Pour gérer les erreurs efficacement:
1. Utiliser des blocs try/catch dans les routes asynchrones
2. Créer un middleware de gestion d’erreurs centralisé
3. Renvoyer des codes d’état HTTP appropriés
4. Fournir des messages d’erreur clairs et utiles // Middleware d’erreur app.use((err, req, res, next) => { const statusCode = err.statusCode || 500; res.status(statusCode).json({ error: { message: err.message || “Erreur serveur interne”, code: err.code || “INTERNAL_ERROR” } }); });

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Comment structurer une API Express pour un projet de taille moyenne?

A

Structure recommandée:
1. Séparer les routes par domaine fonctionnel
2. Utiliser le Router d’Express pour modulariser
3. Isoler la logique métier dans des contrôleurs
4. Centraliser l’accès aux données dans des modèles
5. Créer des middlewares réutilisables
6. Utiliser un fichier de configuration pour les paramètres d’environnement

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Comment sécuriser une API développée avec Express?

A

Pour sécuriser une API Express:
1. Valider et assainir toutes les entrées utilisateur
2. Utiliser des middlewares de sécurité (helmet, cors)
3. Mettre en place l’authentification (JWT, sessions)
4. Implémenter la limitation de débit (rate limiting)
5. Gérer correctement les erreurs sans exposer les détails sensibles
6. Utiliser HTTPS en production
7. Définir des politiques CORS appropriées

How well did you know this?
1
Not at all
2
3
4
5
Perfectly