```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.
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.

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
.

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 :
- Définir une fonction async qui effectuera la requête. Une fonction async est une fonction qui renvoie une promesse. Vous pouvez utiliser le mot-clé
async
avant la déclaration ou l'expression de la fonction. - À l'intérieur de la fonction async, utilisez le mot-clé
await
pour attendre la promesse renvoyée par la méthodefetch()
. Le mot-cléawait
interrompt l'exécution de la fonction async jusqu'à ce que la promesse soit résolue ou rejetée. Il renvoie ensuite la valeur résolue ou lève une erreur. - Utilisez à nouveau le mot-clé
await
pour attendre la promesse renvoyée par la méthoderesponse.json()
, qui analyse le corps de la réponse en tant que JSON et renvoie une autre promesse. - Gérez les données ou l'erreur comme vous le souhaitez. Vous pouvez utiliser des blocs
try...catch
pour intercepter les erreurs qui peuvent survenir pendant l'opération async.

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.
Pour utiliser Apidog pour générer du code client Fetch en un seul clic, vous pouvez suivre les étapes suivantes :
- Cliquez sur le bouton « Nouvelle API » sur le tableau de bord ou sélectionnez une API existante dans la liste.

- Cliquez sur « Générer le code client ». Apidog utilisera le moteur OpenAPI Generator pour générer le code client Fetch pour votre API, en faisant correspondre les points de terminaison et les structures de données que vous avez définis ou sélectionnés.

- Vous verrez une fenêtre modale avec le code généré, que vous pourrez copier dans votre presse-papiers.

- Vous pouvez utiliser le code généré dans votre propre projet ou le modifier comme vous le souhaitez. Vous pouvez également tester le code avec le serveur factice Apidog, qui simule les réponses de l'API en fonction de votre spécification.
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.
```