Comment utiliser Fetch pour effectuer des requêtes PUT dans React

Apprenez PUT avec fetch API en React. Tutoriel pour mettre à jour des données et gérer les erreurs avec hooks.

Louis Dupont

Louis Dupont

5 June 2025

Comment utiliser Fetch pour effectuer des requêtes PUT dans React

```html

Si vous êtes un développeur web, vous savez probablement à quel point il est important de communiquer avec les API et d'extraire des données de sources externes. React, une bibliothèque JavaScript populaire pour la création d'interfaces utilisateur, offre un moyen simple et élégant de le faire avec l'API Fetch.

L'API Fetch est une interface moderne pour effectuer des requêtes HTTP à partir du navigateur. Elle utilise les promesses JavaScript, ce qui facilite et rend plus lisible le travail avec des opérations asynchrones. Vous pouvez utiliser l'API Fetch pour effectuer différents types de requêtes, tels que GET, POST, DELETE et PUT.

Dans cet article de blog, nous allons nous concentrer sur la façon d'utiliser l'API Fetch pour effectuer des requêtes PUT dans React. Une requête PUT est utilisée pour mettre à jour ou remplacer une ressource existante sur un serveur. Par exemple, vous pouvez vouloir utiliser une requête PUT pour modifier un article de blog, mettre à jour un profil utilisateur ou modifier le prix d'un produit.

💡
Apidog est une plateforme web qui vous aide à découvrir, tester et intégrer facilement des API web. L'une des fonctionnalités offertes par Apidog est la possibilité de générer du code client Fetch en un seul clic, en fonction de la spécification de l'API que vous fournissez ou sélectionnez. Téléchargez Apidog gratuitement et commencez dès maintenant.
button

Qu'est-ce qu'une requête PUT et quand l'utiliser

Une requête PUT est l'une des quatre méthodes HTTP fondamentales, avec GET, POST et DELETE. Une requête PUT est utilisée pour mettre à jour ou remplacer une ressource existante sur un serveur. Le corps de la requête contient généralement les données que vous souhaitez mettre à jour ou remplacer.

Par exemple, supposons que vous ayez un article de blog avec les données suivantes :

{
  "id": 1,
  "title": "How to Use Fetch to Make GET Requests in React",
  "content": "In this blog post, we will learn how to use the Fetch API to make GET requests in React...",
  "author": "David",
  "date": "2023-01-01"
}

Si vous souhaitez modifier le titre et le contenu de l'article de blog, vous pouvez utiliser une requête PUT pour envoyer les nouvelles données au serveur. L'URL de la requête serait quelque chose comme https://example.com/api/posts/1, où 1 est l'id de l'article de blog. Le corps de la requête serait quelque chose comme :

{
  "title": "How to Use Fetch to Make PUT Requests in React",
  "content": "In this blog post, we will learn how to use the Fetch API to make PUT requests in React..."
}

Le serveur mettrait alors à jour l'article de blog avec les nouvelles données et renverrait une réponse avec la ressource mise à jour ou un message de confirmation.

PUT request

Une requête PUT est différente d'une requête POST, qui est utilisée pour créer une nouvelle ressource sur un serveur. Une requête POST ne nécessite pas d'id ou d'URL spécifique, tandis qu'une requête PUT en nécessite. Une requête POST peut entraîner une ressource en double si elle est répétée, tandis qu'une requête PUT est idempotente, ce qui signifie qu'elle ne modifiera pas l'état du serveur si elle est répétée.

Une requête PUT est également différente d'une requête PATCH, qui est utilisée pour mettre à jour partiellement une ressource existante sur un serveur. Une requête PATCH envoie uniquement les données qui doivent être modifiées, tandis qu'une requête PUT envoie toutes les données qui remplacent la ressource d'origine. Une requête PATCH est plus efficace et flexible, mais tous les serveurs ne la prennent pas en charge.

Comment effectuer une requête PUT simple avec l'API Fetch

Effectuer une requête PUT avec l'API Fetch est très simple et direct. Il vous suffit d'appeler la méthode fetch(), de transmettre l'URL à partir de laquelle extraire les données et de fournir un objet d'options avec la méthode de requête, les en-têtes et le corps. Ensuite, vous pouvez gérer la réponse lorsqu'elle se résout.

Voici un exemple de la façon d'effectuer une requête PUT simple avec l'API Fetch :

// Définir les données à mettre à jour
const data = {
  title: "How to Use Fetch to Make PUT Requests in React",
  content: "In this blog post, we will learn how to use the Fetch API to make PUT requests in React..."
};

// Définir les options de la requête
const requestOptions = {
  method: "PUT", // Spécifier la méthode de requête
  headers: { "Content-Type": "application/json" }, // Spécifier le type de contenu
  body: JSON.stringify(data) // Envoyer les données au format JSON
};

// Effectuer la requête
fetch("https://example.com/api/posts/1", requestOptions)
  .then(response => response.json()) // Analyser la réponse en tant que JSON
  .then(data => console.log(data)) // Faire quelque chose avec les données
  .catch(error => console.error(error)); // Gérer les erreurs

Dans cet exemple, nous mettons à jour un article de blog avec l'id de 1 sur le serveur. Nous envoyons le nouveau titre et le nouveau contenu dans le corps de la requête et spécifions le type de contenu comme application/json. Nous utilisons également la méthode json() pour analyser la réponse en tant que JSON et enregistrer les données dans la console. En cas d'erreur, nous la capturons et l'enregistrons également dans la console.

C'est la syntaxe de base pour effectuer une requête PUT avec l'API Fetch. Vous pouvez utiliser cette syntaxe pour effectuer n'importe quelle requête PUT vers n'importe quelle API qui la prend en charge. Cependant, si vous utilisez React, il existe des étapes et des considérations supplémentaires dont vous devez tenir compte.

Comment utiliser les hooks React pour effectuer une requête PUT dans un composant fonctionnel

Si vous utilisez React, vous souhaiterez peut-être effectuer une requête PUT dans un composant fonctionnel et mettre à jour l'état du composant lorsque les données sont reçues. Cela vous permet d'extraire des données d'une API et de les afficher dans votre interface utilisateur.

Pour ce faire, vous pouvez utiliser les hooks React, qui sont des fonctions spéciales qui vous permettent d'utiliser l'état et d'autres fonctionnalités React dans les composants fonctionnels. Les hooks les plus couramment utilisés sont useState et useEffect.

REact

Le hook useState vous permet de déclarer une variable d'état et une fonction pour la mettre à jour. L'état initial est transmis en tant qu'argument au hook, et la valeur renvoyée est un tableau avec la variable d'état et la fonction de mise à jour. Vous pouvez utiliser la variable d'état pour stocker les données que vous souhaitez afficher dans l'interface utilisateur et la fonction de mise à jour pour mettre à jour l'état lorsque les données changent.

Le hook useEffect vous permet d'effectuer des effets secondaires, tels que l'exécution de requêtes HTTP, dans les composants fonctionnels. Le premier argument est une fonction qui s'exécute après le rendu du composant, et le second argument est un tableau de dépendances qui détermine quand l'effet s'exécute. Si vous transmettez un tableau vide, l'effet ne s'exécutera qu'une seule fois lors du montage du composant, de la même manière que la méthode de cycle de vie componentDidMount dans les composants de classe.

Voici un exemple de la façon d'utiliser les hooks React pour effectuer une requête PUT dans un composant fonctionnel :

import React, { useState, useEffect } from "react";

function App() {
  // Déclarer une variable d'état pour stocker les données
  const [data, setData] = useState(null);

  // Définir les données à mettre à jour
  const newData = {
    title: "How to Use Fetch to Make PUT Requests in React",
    content: "In this blog post, we will learn how to use the Fetch API to make PUT requests in React..."
  };

  // Définir les options de la requête
  const requestOptions = {
    method: "PUT",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify(newData)
  };

  // Utiliser le hook useEffect pour effectuer la requête
  useEffect(() => {
    // Effectuer la requête
    fetch("https://example.com/api/posts/1", requestOptions)
      .then(response => response.json()) // Analyser la réponse en tant que JSON
      .then(data => setData(data)) // Mettre à jour l'état avec les données
      .catch(error => console.error(error)); // Gérer les erreurs
  }, []); // Transmettre un tableau vide comme second argument pour exécuter l'effet une seule fois

  // Renvoyer le JSX à afficher
  return (
    <div className="App">
      <h1>How to Use Fetch to Make PUT Requests in React</h1>
      {data ? ( // Vérifier si les données sont disponibles
        <div>
          <h2>{data.title}</h2> // Afficher les données
          <p>{data.content}</p>
        </div>
      ) : (
        <p>Loading...</p> // Afficher un message de chargement
      )}
    </div>
  );
}

export default App;

Dans cet exemple, nous utilisons le hook useState pour déclarer une variable d'état appelée data et une fonction appelée setData pour la mettre à jour. L'état initial est null, ce qui signifie qu'aucune donnée n'est encore disponible.

Nous utilisons également le hook useEffect pour effectuer la requête PUT lors du montage du composant. Nous utilisons la même syntaxe qu'auparavant, mais au lieu d'enregistrer les données dans la console, nous mettons à jour l'état avec la fonction setData. Nous transmettons un tableau vide comme second argument au hook useEffect, afin que l'effet ne s'exécute qu'une seule fois.

Comment utiliser async/await pour effectuer une requête PUT avec l'API Fetch

Async/await est une fonctionnalité de JavaScript moderne qui vous permet d'écrire du code asynchrone de manière plus lisible et concise. Il fonctionne avec les promesses, qui sont des objets qui représentent le résultat d'une opération asynchrone. Une promesse peut être résolue (avec une valeur) ou rejetée (avec une erreur).

Pour utiliser async/await pour effectuer une requête PUT avec l'API Fetch, vous devez effectuer les étapes suivantes :

Voici un exemple de fonction async qui effectue une requête PUT avec l'API Fetch :

// Définir une fonction async qui effectue une requête PUT
async function updatePost() {
  // Définir les données à mettre à jour
  const data = {
    title: "How to Use Fetch to Make PUT Requests in React",
    content: "In this blog post, we will learn how to use the Fetch API to make PUT requests in React..."
  };

  // Définir les options de la requête
  const requestOptions = {
    method: "PUT", // Spécifier la méthode de requête
    headers: { "Content-Type": "application/json" }, // Spécifier le type de contenu
    body: JSON.stringify(data) // Envoyer les données au format JSON
  };

  // Utiliser try...catch pour gérer les erreurs
  try {
    // Utiliser await pour attendre la promesse renvoyée par fetch()
    const response = await fetch("https://example.com/api/posts/1", requestOptions);
    // Utiliser await pour attendre la promesse renvoyée par response.json()
    const data = await response.json();
    // Faire quelque chose avec les données
    console.log(data);
  } catch (error) {
    // Gérer l'erreur
    console.error(error);
  }
}

// Appeler la fonction async
updatePost();

Comment gérer les erreurs et les états de chargement lors de l'exécution d'une requête PUT avec l'API Fetch

Lors de l'exécution d'une requête PUT avec l'API Fetch, vous pouvez rencontrer différents types d'erreurs, telles que des erreurs réseau, des erreurs HTTP ou des erreurs d'analyse JSON. Vous devez gérer ces erreurs correctement et fournir des commentaires appropriés à l'utilisateur.

Gestion des erreurs lors de l'exécution d'une requête PUT

Une façon de gérer les erreurs consiste à utiliser la méthode catch() de la promesse renvoyée par la méthode fetch(). Cette méthode interceptera toutes les erreurs qui se produisent pendant la requête ou le traitement de la réponse. Vous pouvez utiliser la propriété response.ok pour vérifier si le statut de la réponse est compris entre 200 et 299, ce qui indique une requête réussie. Sinon, vous pouvez lever une erreur avec le statut ou le message de la réponse. Vous pouvez également utiliser la méthode response.headers.get() pour vérifier si la réponse contient des données JSON avant d'appeler la méthode response.json(), qui lèvera une erreur si la réponse n'est pas un JSON valide.

Une autre façon de gérer les erreurs consiste à utiliser les blocs try...catch avec la syntaxe async/await. Cela vous permet d'écrire du code asynchrone de manière plus lisible et concise. Vous pouvez utiliser le mot-clé await pour attendre la promesse renvoyée par la méthode fetch() et la méthode response.json(), et gérer toutes les erreurs qui peuvent survenir avec le bloc catch.

Voici quelques exemples de la façon de gérer les erreurs lors de l'exécution d'une requête PUT avec l'API Fetch :

// Utilisation de la méthode catch()
fetch("https://example.com/api/posts/1", {
  method: "PUT",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ title: "New title" })
})
  .then(response => {
    // Vérifier si la réponse est réussie
    if (!response.ok) {
      // Lever une erreur avec le statut ou le message
      throw Error(response.status || response.statusText);
    }
    // Vérifier si la réponse contient des données JSON
    const isJson = response.headers.get("content-type")?.includes("application/json");
    // Analyser la réponse en tant que JSON si c'est le cas, ou renvoyer null si ce n'est pas le cas
    return isJson ? response.json() : null;
  })
  .then(data => {
    // Faire quelque chose avec les données
    console.log(data);
  })
  .catch(error => {
    // Gérer l'erreur
    console.error(error);
  });

// Utilisation des blocs try...catch avec async/await
async function updatePost() {
  try {
    // Attendre la promesse renvoyée par la méthode fetch()
    const response = await fetch("https://example.com/api/posts/1", {
      method: "PUT",
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify({ title: "New title" })
    });
    // Vérifier si la réponse est réussie
    if (!response.ok) {
      // Lever une erreur avec le statut ou le message
      throw Error(response.status || response.statusText);
    }
    // Vérifier si la réponse contient des données JSON
    const isJson = response.headers.get("content-type")?.includes("application/json");
    // Analyser la réponse en tant que JSON si c'est le cas, ou renvoyer null si ce n'est pas le cas
    const data = isJson ? await response.json() : null;
    // Faire quelque chose avec les données
    console.log(data);
  } catch (error) {
    // Gérer l'erreur
    console.error(error);
  }
}

// Appeler la fonction async
updatePost();

Gestion de l'état de chargement lors de l'exécution d'une requête PUT avec l'API Fetch

Pour gérer l'état de chargement, vous pouvez utiliser une variable d'état pour indiquer si la requête est en cours ou non. Vous pouvez utiliser le hook useState pour déclarer et mettre à jour la variable d'état dans un composant fonctionnel. Vous pouvez définir la variable d'état sur true avant d'effectuer la requête et la définir sur false une fois la requête terminée ou ayant échoué. Vous pouvez ensuite utiliser la variable d'état pour afficher de manière conditionnelle un indicateur de chargement ou les données dans l'interface utilisateur.

Voici un exemple de la façon de gérer l'état de chargement lors de l'exécution d'une requête PUT avec l'API Fetch dans un composant fonctionnel :

import React, { useState } from "react";

function App() {
  // Déclarer une variable d'état pour stocker les données
  const [data, setData] = useState(null);
  // Déclarer une variable d'état pour indiquer l'état de chargement
  const [loading, setLoading] = useState(false);

  // Définir les données à mettre à jour
  const newData = {
    title: "How to Use Fetch to Make PUT Requests in React",
    content: "In this blog post, we will learn how to use the Fetch API to make PUT requests in React..."
  };

  // Définir les options de la requête
  const requestOptions = {
    method: "PUT",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify(newData)
  };

  // Définir une fonction pour effectuer la requête
  function updatePost() {
    // Définir l'état de chargement sur true
    setLoading(true);
    // Effectuer la requête
    fetch("https://example.com/api/posts/1", requestOptions)
      .then(response => {
        // Vérifier si la réponse est réussie
        if (!response.ok) {
          // Lever une erreur avec le statut ou le message
          throw Error(response.status || response.statusText);
        }
        // Vérifier si la réponse contient des données JSON
        const isJson = response.headers.get("content-type")?.includes("application/json");
        // Analyser la réponse en tant que JSON si c'est le cas, ou renvoyer null si ce n'est pas le cas
        return isJson ? response.json() : null;
      })
      .then(data => {
        // Mettre à jour l'état avec les données
        setData(data);
        // Définir l'état de chargement sur false
        setLoading(false);
      })
      .catch(error => {
        // Gérer l'erreur
        console.error(error);
        // Définir l'état de chargement sur false
        setLoading(false);
      });
  }

  // Renvoyer le JSX à afficher
  return (
    <div className="App">
      <h1>How to Use Fetch to Make PUT Requests in React</h1>
      <button onClick={updatePost}>Mettre à jour l'article</button>
      {loading ? ( // Vérifier si la requête est en cours
        <p>Chargement...</p> // Afficher un message de chargement
      ) : data ? ( // Vérifier si les données sont disponibles
        <div>
          <h2>{data.title}</h2> // Afficher les données
          <p>{data.content}</p>
        </div>
      ) : null}
    </div>
  );
}

export default App;

Comment utiliser Apidog pour générer du code client Fetch en un seul clic

Apidog est une plateforme web qui vous aide à découvrir, tester et intégrer facilement des API web. L'une des fonctionnalités offertes par Apidog est la possibilité de générer du code client Fetch en un seul clic, en fonction de la spécification de l'API que vous fournissez ou sélectionnez.

button

Pour utiliser Apidog pour générer du code client Fetch en un seul clic, vous pouvez suivre les étapes suivantes :

Apidog
Apidog
Apidog

C'est tout ! Vous avez réussi à utiliser Apidog pour générer du code client Fetch en un seul clic. Vous pouvez utiliser cette fonctionnalité pour gagner du temps et éviter les erreurs lorsque vous travaillez avec des API web. Vous pouvez également explorer d'autres fonctionnalités offertes par Apidog, telles que la documentation de l'API, le débogage de l'API, la simulation de l'API et les tests automatisés de l'API.

Conclusion

Dans cet article, nous avons appris à utiliser l'API Fetch pour effectuer des requêtes PUT. L'API Fetch est un moyen moderne et facile de communiquer avec les API dans le navigateur, et React offre un moyen puissant et déclaratif de créer des interfaces utilisateur basées sur les données. En combinant ces deux technologies, nous pouvons créer des applications web dynamiques et interactives qui consomment des données provenant de diverses sources.

Apidog offre la possibilité de générer du code client Fetch en un seul clic, en fonction de la spécification de l'API que vous fournissez ou sélectionnez.

button

```

Explore more

Comment utiliser Deepseek R1 en local avec Cursor

Comment utiliser Deepseek R1 en local avec Cursor

Apprenez à configurer DeepSeek R1 local avec Cursor IDE pour une aide au codage IA privée et économique.

4 June 2025

Comment exécuter Gemma 3n sur Android ?

Comment exécuter Gemma 3n sur Android ?

Apprenez à installer et exécuter Gemma 3n sur Android via Google AI Edge Gallery.

3 June 2025

Comment utiliser Claude Code avec GitHub Actions

Comment utiliser Claude Code avec GitHub Actions

Découvrez Claude Code avec GitHub Actions : revues de code, corrections de bugs, implémentation de fonctionnalités. Tutoriel pour développeurs.

29 May 2025

Pratiquez le Design-first d'API dans Apidog

Découvrez une manière plus simple de créer et utiliser des API