API Fetch : GET, POST, PUT et DELETE
Effectuez des requêtes GET avec fetch, envoyez des corps JSON dans les requêtes POST et PUT et appelez des points de terminaison DELETE pour supprimer des ressources.
API Fetch : GET, POST, PUT et DELETE est une leçon Frontend Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Frontend Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Frontend Academy comprend 4 leçons au total.
L’API Fetch
fetch() est l’API de navigateur moderne pour les requêtes HTTP. Elle renvoie une promesse qui se résout en objet Response. Elle est standard dans tous les navigateurs modernes et dans Node.js 18+.
Requête GET de base
La requête fetch la plus simple : transmettez une URL, attendez la réponse, puis analysez le JSON.
async function fetchUsers() {
const res = await fetch('https://api.example.com/users');
if (!res.ok) throw new Error('HTTP ' + res.status);
const users = await res.json();
return users;
}POST avec un corps JSON
Utilisez method, headers et body. Le corps doit être une chaîne : appelez JSON.stringify() sur l’objet.
async function createUser(user) {
const res = await fetch('/api/users', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(user)
});
if (!res.ok) throw new Error('Failed: ' + res.status);
return res.json();
}
createUser({ name: 'Alice', email: 'alice@example.com' });PUT pour une mise à jour complète
PUT remplace la ressource. Envoyez l’objet entier : les champs que vous omettez sont généralement effacés sur le serveur.
await fetch(`/api/users/${id}`, {
method: 'PUT',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
id, name: 'Alice', email: 'alice@example.com', role: 'admin'
})
});PATCH pour une mise à jour partielle
PATCH met à jour uniquement les champs que vous envoyez. Utilisez-le pour les mises à jour partielles plutôt que PUT.
await fetch(`/api/users/${id}`, {
method: 'PATCH',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ email: 'new@example.com' })
});Requête DELETE
DELETE n’a généralement pas de corps. La réponse renvoie souvent 204 No Content sans corps.
async function deleteUser(id) {
const res = await fetch(`/api/users/${id}`, { method: 'DELETE' });
if (!res.ok) throw new Error('Delete failed');
// 204 No Content — no JSON to parse
}En-têtes d’authentification
Ajoutez un en-tête Authorization pour les points de terminaison protégés.
const res = await fetch('/api/me', {
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
}
});Paramètres de requête dans l’URL
Construisez les chaînes de requête avec URLSearchParams pour assurer un encodage sûr.
const params = new URLSearchParams({
q: 'react hooks',
page: '2',
pageSize: '20'
});
const res = await fetch(`/api/search?${params}`);
// /api/search?q=react+hooks&page=2&pageSize=20Pourquoi fetch ne déclenche pas d’erreur pour les erreurs HTTP
fetch rejette uniquement la promesse en cas d’échec réseau : une réponse 404 ou 500 est tout de même résolue correctement. Vérifiez toujours res.ok (true pour les réponses 2xx) ou res.status, puis déclenchez l’erreur manuellement.
const res = await fetch('/api/users/999');
if (!res.ok) {
// res.ok is false for 4xx and 5xx
throw new Error(`Server error ${res.status}: ${await res.text()}`);
}AbortController pour l’annulation
Annulez une requête en cours pour éviter les résultats obsolètes : c’est essentiel pour la recherche avec saisie anticipée et le nettoyage des effets React.
const controller = new AbortController();
fetch('/api/search?q=hooks', { signal: controller.signal })
.then(res => res.json())
.catch(err => {
if (err.name !== 'AbortError') throw err;
});
// Cancel:
controller.abort();Envoyer des données avec FormData
Pour les téléversements de fichiers ou les formulaires multipart, transmettez un objet FormData comme corps. Ne définissez pas Content-Type : le navigateur l’ajoute avec la limite correcte.
const form = new FormData();
form.append('avatar', fileInput.files[0]);
form.append('name', 'Alice');
await fetch('/api/upload', { method: 'POST', body: form });
// no Content-Type header — browser sets multipart/form-dataVérification rapide
Pourquoi fetch() ne déclenche-t-il pas d’erreur lorsque le serveur renvoie une réponse 404 ou 500 ?
Récapitulatif : API Fetch
fetch() renvoie une promesse contenant Response. Méthodes : GET (par défaut), POST, PUT, PATCH, DELETE. Les corps JSON nécessitent JSON.stringify() et un en-tête Content-Type. fetch rejette uniquement en cas d’échec réseau : vérifiez res.ok manuellement. Utilisez URLSearchParams pour les chaînes de requête. AbortController sert à l’annulation. FormData sert aux téléversements de fichiers (pas de Content-Type : le navigateur s’en charge).
Questions Fréquemment Posées
La leçon « API Fetch : GET, POST, PUT et DELETE » est-elle gratuite ?
Oui — le texte complet de « API Fetch : GET, POST, PUT et DELETE » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Frontend Academy, passe à CoddyKit PRO. Le cours Frontend Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « API Fetch : GET, POST, PUT et DELETE » ?
Effectuez des requêtes GET avec fetch, envoyez des corps JSON dans les requêtes POST et PUT et appelez des points de terminaison DELETE pour supprimer des ressources. Tu pratiques Frontend Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Frontend Academy ?
Aucune expérience préalable n'est requise. Frontend Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « API Fetch : GET, POST, PUT et DELETE » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Frontend Academy ?
Oui. Chaque leçon Frontend Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- API Fetch : GET, POST, PUT et DELETE
- Axios : intercepteurs et URL de base
- Gestion des erreurs : codes d’état HTTP
- SWR et React Query pour la mise en cache des données