Comment effectuer plusieurs requêtes avec Axios

Maîtrisez Axios pour des appels API concurrents efficaces. Techniques, gestion d'erreurs et bonnes pratiques pour une récupération de données robuste.

Louis Dupont

Louis Dupont

5 June 2025

Comment effectuer plusieurs requêtes avec Axios

Salut ! Si vous êtes développeur, vous avez probablement déjà eu ces moments où vous devez effectuer plusieurs appels d'API dans vos projets. Ce n'est pas la partie la plus glamour du codage, mais c'est essentiel. Aujourd'hui, nous allons plonger en profondeur dans les requêtes multiples Axios, un moyen puissant de gérer cette tâche efficacement.

Mais attendez, avant de commencer, voici une astuce rapide : si vous recherchez un outil d'API puissant pour rationaliser votre processus de développement, consultez Apidog. Il est gratuit et regorge de fonctionnalités qui vous faciliteront grandement la vie.

Maintenant, retroussons nos manches et plongeons dans les détails de la réalisation de plusieurs requêtes avec Axios !

Qu'est-ce qu'Axios ?

Tout d'abord, parlons de ce qu'est Axios. Axios est un client HTTP populaire basé sur les promesses pour JavaScript. Il est utilisé pour effectuer des requêtes HTTP à partir du navigateur et de Node.js, et il est particulièrement apprécié pour sa facilité d'utilisation et sa flexibilité. Avec Axios, vous pouvez facilement envoyer des requêtes HTTP asynchrones aux points de terminaison REST et effectuer des opérations CRUD.

Pourquoi utiliser Axios pour plusieurs requêtes ?

Lors de la création d'applications web modernes, il existe souvent des scénarios où vous devez récupérer des données à partir de plusieurs sources. Cela peut être pour remplir un tableau de bord avec différents ensembles de données, effectuer une série d'opérations dépendantes, ou même simplement rassembler toutes les informations nécessaires pour afficher une seule page.

La gestion de plusieurs requêtes API peut être délicate. Vous devez gérer plusieurs opérations asynchrones, gérer les erreurs avec élégance et vous assurer que votre application ne soit pas ralentie. C'est là qu'Axios brille. Il offre un moyen élégant et simple de gérer plusieurs requêtes avec des fonctionnalités telles que :

Démarrer avec Axios

Avant de plonger dans les requêtes multiples, assurons-nous que nous sommes sur la même longueur d'onde avec les bases d'Axios.

Installation d'Axios

Tout d'abord, vous devez installer Axios. Si vous utilisez npm, vous pouvez le faire avec :

npm install axios

Ou, si vous préférez yarn :

yarn add axios

Requête Axios de base

Voici un exemple rapide d'une requête GET de base utilisant Axios :

import axios from 'axios';

axios.get('https://api.example.com/data')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error('Error fetching data:', error);
  });

Ce simple extrait récupère les données de l'URL donnée et les enregistre dans la console. En cas d'erreur, il enregistre le message d'erreur.

Effectuer plusieurs requêtes avec Axios

Maintenant, passons au sujet principal : effectuer plusieurs requêtes avec Axios. Il existe plusieurs façons de gérer cela, en fonction de vos besoins.

Utilisation de axios.all et axios.spread

La méthode la plus courante pour gérer plusieurs requêtes consiste à utiliser axios.all et axios.spread. Ces fonctions vous aident à gérer les requêtes simultanées et à traiter leurs réponses de manière propre et organisée.

Voici un exemple :

import axios from 'axios';

function getData() {
  const requestOne = axios.get('https://api.example.com/data1');
  const requestTwo = axios.get('https://api.example.com/data2');

  axios.all([requestOne, requestTwo])
    .then(axios.spread((responseOne, responseTwo) => {
      console.log('Data from first request:', responseOne.data);
      console.log('Data from second request:', responseTwo.data);
    }))
    .catch(errors => {
      console.error('Error fetching data:', errors);
    });
}

getData();

Dans cet exemple, axios.all prend un tableau de promesses (nos requêtes HTTP) et attend que toutes se résolvent. La fonction axios.spread prend ensuite les réponses et les répartit en arguments individuels, ce qui facilite le travail avec chaque réponse.

Gestion des requêtes dynamiques

Parfois, vous ne savez pas à l'avance combien de requêtes vous devrez effectuer. Dans de tels cas, vous pouvez créer dynamiquement le tableau de promesses.

import axios from 'axios';

function fetchData(endpoints) {
  const requests = endpoints.map(endpoint => axios.get(endpoint));

  axios.all(requests)
    .then(axios.spread((...responses) => {
      responses.forEach((response, index) => {
        console.log(`Data from request ${index + 1}:`, response.data);
      });
    }))
    .catch(errors => {
      console.error('Error fetching data:', errors);
    });
}

const apiEndpoints = [
  'https://api.example.com/data1',
  'https://api.example.com/data2',
  'https://api.example.com/data3'
];

fetchData(apiEndpoints);

Dans ce scénario, nous mappons sur le tableau des points de terminaison pour créer un tableau de promesses. C'est un moyen puissant de gérer des listes dynamiques d'appels d'API.

Requêtes séquentielles avec Axios

Il y a des moments où vous devez vous assurer qu'une requête se termine avant de commencer la suivante. Par exemple, lorsque la deuxième requête dépend du résultat de la première. Dans de tels cas, vous pouvez enchaîner vos requêtes à l'aide de promesses.

import axios from 'axios';

function fetchSequentialData() {
  axios.get('https://api.example.com/data1')
    .then(response1 => {
      console.log('First request data:', response1.data);
      return axios.get('https://api.example.com/data2');
    })
    .then(response2 => {
      console.log('Second request data:', response2.data);
    })
    .catch(error => {
      console.error('Error fetching data:', error);
    });
}

fetchSequentialData();

Cette approche garantit que la deuxième requête ne démarre qu'une fois que la première s'est terminée avec succès.

Gestion des erreurs dans plusieurs requêtes

La gestion efficace des erreurs est cruciale lors de la gestion de plusieurs requêtes. Axios offre plusieurs façons de gérer les erreurs, garantissant que votre application peut gérer les problèmes avec élégance.

Gestion des erreurs pour les requêtes individuelles

Vous pouvez gérer les erreurs pour chaque requête individuellement en ajoutant un bloc .catch à chaque promesse :

import axios from 'axios';

const requestOne = axios.get('https://api.example.com/data1')
  .catch(error => console.error('Error in request one:', error));

const requestTwo = axios.get('https://api.example.com/data2')
  .catch(error => console.error('Error in request two:', error));

axios.all([requestOne, requestTwo])
  .then(axios.spread((responseOne, responseTwo) => {
    if (responseOne) console.log('Data from first request:', responseOne.data);
    if (responseTwo) console.log('Data from second request:', responseTwo.data);
  }));

Gestion de toutes les erreurs ensemble

Alternativement, vous pouvez gérer toutes les erreurs ensemble à la fin :

import axios from 'axios';

const requestOne = axios.get('https://api.example.com/data1');
const requestTwo = axios.get('https://api.example.com/data2');

axios.all([requestOne, requestTwo])
  .then(axios.spread((responseOne, responseTwo) => {
    console.log('Data from first request:', responseOne.data);
    console.log('Data from second request:', responseTwo.data);
  }))
  .catch(error => {
    console.error('Error fetching data:', error);
  });

Cette approche est plus simple mais moins granulaire, car elle ne distingue pas quelle requête a échoué.

Optimisation des requêtes Axios

Pour tirer le meilleur parti d'Axios, voici quelques conseils et bonnes pratiques.

Utilisation des intercepteurs

Les intercepteurs vous permettent d'exécuter votre code ou de modifier les requêtes/réponses avant qu'elles ne soient gérées par then ou catch. Ils sont parfaits pour ajouter des en-têtes, la journalisation, la gestion des erreurs, etc.

import axios from 'axios';

// Add a request interceptor
axios.interceptors.request.use(request => {
  console.log('Starting Request', request);
  return request;
}, error => {
  return Promise.reject(error);
});

// Add a response interceptor
axios.interceptors.response.use(response => {
  console.log('Response:', response);
  return response;
}, error => {
  return Promise.reject(error);
});

Définition des valeurs par défaut globales

Vous pouvez définir des options de configuration par défaut pour Axios. Cela peut être pratique pour définir des URL de base, des en-têtes, des délais d'attente, etc.

import axios from 'axios';

axios.defaults.baseURL = 'https://api.example.com';
axios.defaults.headers.common['Authorization'] = 'Bearer token';
axios.defaults.timeout = 10000;

Annulation des requêtes

Parfois, vous devrez peut-être annuler une requête. Axios offre un moyen d'annuler les requêtes à l'aide de CancelToken.

import axios from 'axios';

const CancelToken = axios.CancelToken;
let cancel;

axios.get('https://api.example.com/data', {
  cancelToken: new CancelToken(function executor(c) {
    cancel = c;
  })
})
  .then(response => {
    console.log(response.data);
  })
  .catch(thrown => {
    if (axios.isCancel(thrown)) {
      console.log('Request canceled', thrown.message);
    } else {
      console.error('Error fetching data:', thrown);
    }
  });

// To cancel the request
cancel('Operation canceled by the user.');

Exemple concret : récupération de données à partir de plusieurs API

Regroupons le tout avec un exemple concret. Supposons que vous construisiez un tableau de bord qui doit récupérer les données des utilisateurs, des publications et des commentaires à partir de différents points de terminaison.

import axios from 'axios';

async function fetchDashboardData() {
  try {
    const [userData, postsData, commentsData] = await axios.all([
      axios.get('https://api.example.com/users'),
      axios.get('https://api.example.com/posts'),
      axios.get('https://api.example.com/comments')
    ]);

    console.log

('User Data:', userData.data);
    console.log('Posts Data:', postsData.data);
    console.log('Comments Data:', commentsData.data);
  } catch (errors) {
    console.error('Error fetching dashboard data:', errors);
  }
}

fetchDashboardData();

Dans cet exemple, nous utilisons axios.all pour récupérer les données de trois points de terminaison différents simultanément. Nous traitons ensuite les réponses ensemble, en enregistrant les données dans la console.

Apidog : un outil gratuit pour générer votre code Axios

Apidog est une plateforme de développement d'API collaborative tout-en-un qui fournit une boîte à outils complète pour la conception, le débogage, le test, la publication et la simulation d'API. Apidog vous permet de créer automatiquement du code Axios pour effectuer des requêtes HTTP.

button

Voici le processus d'utilisation d'Apidog pour générer du code Axios :

Étape 1 : Ouvrez Apidog et sélectionnez nouvelle requête

Étape 2 : Entrez l'URL du point de terminaison de l'API auquel vous souhaitez envoyer une requête,insérez tous les en-têtes ou paramètres de chaîne de requête que vous souhaitez inclure avec la requête, puis cliquez sur "Conception" pour passer à l'interface de conception d'Apidog.

Étape 3 : Sélectionnez "Générer le code client" pour générer votre code.

Étape 4 : Copiez le code Axios généré et collez-le dans votre projet.

Utilisation d'Apidog pour envoyer des requêtes HTTP

Apidog propose plusieurs fonctionnalités avancées qui améliorent encore sa capacité à tester les requêtes HTTP. Ces fonctionnalités vous permettent de personnaliser vos requêtes et de gérer des scénarios plus complexes sans effort.

button

Étape 1 : Ouvrez Apidog et créez une nouvelle requête.

Apidog

Étape 2 : Trouvez ou saisissez manuellement les détails de l'API pour la requête POST que vous souhaitez effectuer.

Apidog

Étape 3 : Remplissez les paramètres requis et toutes les données que vous souhaitez inclure dans le corps de la requête.

Apidog

Conclusion

La gestion efficace de plusieurs requêtes API est cruciale pour la création d'applications web robustes et performantes. Axios, avec ses fonctionnalités puissantes et sa flexibilité, rend cette tâche simple et gérable. En tirant parti de axios.all, axios.spread, des intercepteurs et d'autres fonctionnalités avancées, vous pouvez créer des flux de travail de récupération de données transparents et efficaces dans vos applications.

N'oubliez pas, si vous souhaitez booster votre développement d'API, téléchargez Apidog gratuitement et explorez son riche ensemble de fonctionnalités. C'est un véritable atout pour tout développeur travaillant avec des API.

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