Fetch de données
Qu’est-ce que fetch ?
Section intitulée « Qu’est-ce que fetch ? »La méthode fetch() permet de faire des requêtes HTTP pour récupérer ou envoyer des données.
Elle retourne une Promise, ce qui la rend asynchrone.
Qu’est-ce que fetch ?
Section intitulée « Qu’est-ce que fetch ? »La méthode fetch() est intégrée dans les navigateurs modernes.
Elle permet de faire des requêtes HTTP pour récupérer ou envoyer des données depuis une API.
Elle retourne une Promise, ce qui la rend asynchrone : le code continue de s’exécuter pendant que la requête est en cours.
Exemple simple (GET)
Section intitulée « Exemple simple (GET) »fetch("https://jsonplaceholder.typicode.com/posts/1") .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error("Erreur :", error));Avec async/await
Section intitulée « Avec async/await »Grâce à async/await, le code est plus lisible :
async function getPost() { try { let response = await fetch("https://jsonplaceholder.typicode.com/posts/1"); let data = await response.json(); console.log(data); } catch (e) { console.error("Erreur :", e); }}
getPost();Envoyer des données (POST)
Section intitulée « Envoyer des données (POST) »On peut aussi envoyer des données avec fetch.
Il faut préciser la méthode (POST, PUT, DELETE) et souvent ajouter des headers.
async function createPost() { try { let response = await fetch("https://jsonplaceholder.typicode.com/posts", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ title: "Nouveau post", body: "Contenu de l'article", userId: 1 }) });
let data = await response.json(); console.log("Créé :", data); } catch (e) { console.error("Erreur :", e); }}
createPost();Autres méthodes HTTP
Section intitulée « Autres méthodes HTTP »- GET → lire des données
- POST → créer une donnée
- PUT → mettre à jour une donnée
- DELETE → supprimer une donnée
Vérifier les erreurs HTTP
Section intitulée « Vérifier les erreurs HTTP »⚠️ Attention : fetch ne lance pas automatiquement une erreur en cas de statut 404 ou 500.
Il faut vérifier response.ok et response.status manuellement.
let response = await fetch("https://jsonplaceholder.typicode.com/404");
if (!response.ok) { console.error("Erreur HTTP :", response.status);}Points importants
Section intitulée « Points importants »fetchretourne toujours une Promise.response.json()transforme la réponse en objet JavaScript.- Il faut gérer les erreurs avec
try/catchou.catch(). fetchne lance pas d’erreur en cas de statut HTTP 404 ou 500 → il faut vérifierresponse.ok.
let response = await fetch("https://jsonplaceholder.typicode.com/404");
if (!response.ok) { console.error("Erreur HTTP :", response.status);}Bonnes pratiques
Section intitulée « Bonnes pratiques »- Toujours vérifier
response.okavant de traiter la réponse. - Gérer les erreurs avec
try/catch(si tu utilisesasync/await) ou.catch()(si tu utilises les Promises). - Utiliser correctement les headers (
Content-Type,Authorizationpour les tokens, etc.). - Préférer
async/awaitpour garder un code lisible et facile à maintenir.