API Fetch Flashcards
Qu’est-ce qu’une API et quel est son rôle dans une application web ?
Une API (Application Programming Interface) est un ensemble de fonctions permettant à des applications de communiquer entre elles. Elle sert d’intermédiaire qui transmet des demandes à un système et renvoie ses réponses. Dans une application web, les APIs permettent d’accéder à des données externes (météo, paiements, réseaux sociaux…) sans avoir à les gérer directement. Elles facilitent l’intégration de services tiers et la communication entre le frontend et le backend.
Expliquez les différentes méthodes HTTP et leur utilisation dans un contexte REST.
Les principales méthodes HTTP correspondent aux opérations CRUD :
* GET : Lecture de données (Read) - sans effet secondaire
* POST : Création de nouvelles ressources (Create)
* PUT : Mise à jour complète de ressources existantes (Update)
* DELETE : Suppression de ressources (Delete)
Dans une architecture REST, ces méthodes agissent sur des ressources identifiées par des URLs, garantissant une interface uniforme et prévisible.
Pourquoi les opérations réseau sont-elles asynchrones en JavaScript et comment les gère-t-on ?
Les opérations réseau sont asynchrones car elles sont souvent lentes (latence réseau, temps de traitement serveur) et bloqueraient l’interface utilisateur si elles étaient synchrones. JavaScript étant mono-thread, l’asynchronisme permet de continuer l’exécution du code pendant l’attente d’une réponse.
On gère ces opérations asynchrones avec :
* Les Promesses (.then(), .catch())
* Async/await pour un code plus lisible
* Les callbacks (approche plus ancienne)
Cette gestion asynchrone est essentielle pour maintenir la réactivité des applications web
Comment utiliseriez-vous l’API Fetch pour récupérer et afficher des données JSON d’une API ?
Pour récupérer et afficher des données JSON avec Fetch :
1. Appeler fetch() avec l’URL de l’API
2. Convertir la réponse en JSON avec response.json()
3. Traiter les données obtenues pour les afficher dans le DOM
4. Gérer les erreurs potentielles
Par exemple :
fetch(‘https://api.exemple.com/data’)
.then(response => {
if (!response.ok) throw new Error(Erreur HTTP: ${response.status}
);
return response.json();
})
.then(data => {
// Afficher les données dans le DOM
const container = document.getElementById(‘data-container’);
data.forEach(item => {
// Créer et ajouter des éléments
});
})
.catch(error => {
console.error(‘Erreur:’, error);
// Afficher message d’erreur à l’utilisateur
});
Comment sécuriseriez-vous les appels API dans une application web ?
Pour sécuriser les appels API, j’appliquerais ces mesures essentielles :
1. Transport sécurisé : Utiliser exclusivement HTTPS
2. Authentification : Implémenter JWT ou OAuth2 pour authentifier les requêtes
3. Validation des données : Valider toutes les entrées et sorties côté client et serveur
4. Gestion CORS : Configurer correctement les règles CORS sur le serveur
5. Protection contre les attaques : Prévenir les injections, XSS et CSRF
6. Limitation de débit : Réduire les risques de DDoS en limitant le nombre de requêtes
7. Gestion des erreurs : Ne pas exposer d’informations sensibles dans les messages d’erreur