Leçon 7/8 8 min

Fetch et API

Communiquez avec des serveurs : fetch(), async/await, JSON, et gestion des erreurs avec try/catch.

Qu'est-ce qu'une API ?

Une API (Application Programming Interface) est un moyen pour des programmes de communiquer entre eux. Quand votre site a besoin de données (météo, utilisateurs, produits), il les demande à un serveur via une API.

Dans notre métaphore du bâtiment : l'API, c'est le téléphone. Votre bâtiment appelle le fournisseur pour commander des matériaux, et le fournisseur répond avec ce qu'il a en stock.

Une requête API, c'est :

  1. Vous envoyez une requête (demande) à une URL
  2. Le serveur traite et envoie une réponse (souvent en JSON)
  3. Vous utilisez les données dans votre page

fetch() — faire une requête

fetch() est la méthode JavaScript native pour appeler une API :

fetch("https://jsonplaceholder.typicode.com/users/1")
  .then(function(response) {
    return response.json();
  })
  .then(function(data) {
    console.log(data.name); // "Leanne Graham"
  });

fetch() retourne une Promise — un objet qui représente une opération qui va se terminer plus tard. .then() s'exécute quand la réponse arrive.

async/await — la syntaxe moderne

async/await rend le code asynchrone lisible comme du code normal :

async function chargerUtilisateur() {
  const response = await fetch("https://jsonplaceholder.typicode.com/users/1");
  const data = await response.json();
  console.log(data.name);
}

chargerUtilisateur();

await met le code en pause jusqu'à ce que la Promise soit résolue. async est obligatoire devant la fonction qui utilise await.

JSON — le format des API

JSON (JavaScript Object Notation) est le format standard des API. C'est très similaire aux objets JavaScript :

// Objet JavaScript → texte JSON
const obj = { nom: "Alice", age: 25 };
const texte = JSON.stringify(obj); // '{"nom":"Alice","age":25}'

// Texte JSON → objet JavaScript
const obj2 = JSON.parse(texte); // { nom: "Alice", age: 25 }

Gestion des erreurs : try/catch

Les requêtes réseau peuvent échouer (pas d'internet, serveur en panne). Utilisez try/catch pour gérer les erreurs :

async function charger() {
  try {
    const response = await fetch("https://api.exemple.com/data");
    if (!response.ok) {
      throw new Error("Erreur HTTP : " + response.status);
    }
    const data = await response.json();
    console.log(data);
  } catch (error) {
    console.error("Problème :", error.message);
  }
}

Règle d'or : vérifiez toujours response.ok et entourez fetch de try/catch.

What is an API?

An API (Application Programming Interface) is a way for programs to communicate with each other. When your site needs data (weather, users, products), it requests it from a server via an API.

In our building metaphor: the API is the telephone. Your building calls the supplier to order materials, and the supplier responds with what's in stock.

An API request is:

  1. You send a request to a URL
  2. The server processes it and sends a response (usually JSON)
  3. You use the data in your page

fetch() — making a request

fetch() is the native JavaScript method to call an API:

fetch("https://jsonplaceholder.typicode.com/users/1")
  .then(function(response) {
    return response.json();
  })
  .then(function(data) {
    console.log(data.name); // "Leanne Graham"
  });

fetch() returns a Promise — an object representing an operation that will complete later. .then() runs when the response arrives.

async/await — the modern syntax

async/await makes asynchronous code read like normal code:

async function loadUser() {
  const response = await fetch("https://jsonplaceholder.typicode.com/users/1");
  const data = await response.json();
  console.log(data.name);
}

loadUser();

await pauses the code until the Promise resolves. async is required before the function that uses await.

JSON — the API format

JSON (JavaScript Object Notation) is the standard format for APIs. It's very similar to JavaScript objects:

// JavaScript object → JSON text
const obj = { name: "Alice", age: 25 };
const text = JSON.stringify(obj); // '{"name":"Alice","age":25}'

// JSON text → JavaScript object
const obj2 = JSON.parse(text); // { name: "Alice", age: 25 }

Error handling: try/catch

Network requests can fail (no internet, server down). Use try/catch to handle errors:

async function loadData() {
  try {
    const response = await fetch("https://api.example.com/data");
    if (!response.ok) {
      throw new Error("HTTP error: " + response.status);
    }
    const data = await response.json();
    console.log(data);
  } catch (error) {
    console.error("Problem:", error.message);
  }
}

Golden rule: always check response.ok and wrap fetch in try/catch.

Essayez vous-même
Avec l'IA

Copiez ce prompt dans Claude ou ChatGPT :

Explique-moi les Promises en JavaScript comme si j'étais au restaurant : la commande, l'attente, le plat servi ou l'erreur. Puis montre un exemple avec fetch et async/await.
Exercice : Corrigez le code de l'IA

L'IA a oublié d'appeler .json() sur la réponse. Les données ne sont pas parsées. Ajoutez await response.json().

Corrigez le code
Que retourne fetch() ?
Que fait JSON.parse() ?
Pourquoi utiliser try/catch avec fetch ?
Que signifie async devant une fonction ?
Besoin d'un développeur pour votre projet ?

Réponse sous 24h — Sans engagement