Il existe de nombreuses façons d'effectuer des requêtes HTTP en JavaScript, mais deux des plus populaires sont Axios et l'API native fetch(). Dans cet article, nous comparerons et opposerons ces deux méthodes pour déterminer laquelle est la mieux adaptée à différents scénarios.
Les requêtes HTTP sont fondamentales pour communiquer avec les serveurs et les API des applications Web. Axios et fetch() sont largement utilisés pour faciliter efficacement ces requêtes. Examinons leurs fonctionnalités et voyons comment elles se comparent.
Axios est une bibliothèque tierce qui fournit un client HTTP basé sur des promesses pour effectuer des requêtes HTTP. Il est connu pour sa simplicité et sa flexibilité et est largement utilisé dans la communauté JavaScript.
axios(config) .then(response => console.log(response.data)) .catch(error => console.error('Error:', error));
axios({ method: 'post', url: 'https://api.example.com/data', data: { key: 'value' } }) .then(response => console.log(response.data)) .catch(error => { if (error.response) { console.error('Server responded with:', error.response.status); } else if (error.request) { console.error('No response received'); } else { console.error('Error:', error.message); } });
fetch() est une API intégrée en JavaScript moderne, prise en charge par tous les navigateurs modernes. Il s'agit d'une API Web asynchrone qui renvoie des données sous forme de promesses.
Tout d'abord, installez Axios en utilisant npm ou Yarn :
axios(config) .then(response => console.log(response.data)) .catch(error => console.error('Error:', error));
Vous pouvez également inclure Axios via un CDN :
axios({ method: 'post', url: 'https://api.example.com/data', data: { key: 'value' } }) .then(response => console.log(response.data)) .catch(error => { if (error.response) { console.error('Server responded with:', error.response.status); } else if (error.request) { console.error('No response received'); } else { console.error('Error:', error.message); } });
Voici comment utiliser Axios pour faire une requête GET :
npm install axios # or yarn add axios # or pnpm install axios
Étant donné que fetch() est intégré, vous n'avez rien à installer. Voici comment faire une requête GET avec fetch() :
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
import axios from 'axios'; axios.get('https://example.com/api') .then(response => console.log(response.data)) .catch(error => console.error(error));
fetch('https://example.com/api') .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error(error));
Axios :
fetch(url, options) .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error('Error:', error));
Récupérer :
fetch('https://api.example.com/data', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ key: 'value' }) }) .then(response => { if (!response.ok) throw new Error('HTTP error ' + response.status); return response.json(); }) .then(data => console.log(data)) .catch(error => console.error('Error:', error));
Axios :
axios.get('/api/data', { params: { name: 'Alice', age: 25 } }) .then(response => { /* handle response */ }) .catch(error => { /* handle error */ });
Récupérer :
const url = new URL('/api/data'); url.searchParams.append('name', 'Alice'); url.searchParams.append('age', 25); fetch(url) .then(response => response.json()) .then(data => { /* handle data */ }) .catch(error => { /* handle error */ });
Axios :
axios.post('/api/data', { name: 'Bob', age: 30 }) .then(response => { /* handle response */ }) .catch(error => { /* handle error */ });
Récupérer :
fetch('/api/data', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ name: 'Bob', age: 30 }) }) .then(response => response.json()) .then(data => { /* handle data */ }) .catch(error => { /* handle error */ });
Axios :
axios.get('/api/data', { timeout: 5000 }) // 5 seconds .then(response => { /* handle response */ }) .catch(error => { /* handle error */ });
Récupérer :
const controller = new AbortController(); const signal = controller.signal; setTimeout(() => controller.abort(), 5000); // abort after 5 seconds fetch('/api/data', { signal }) .then(response => response.json()) .then(data => { /* handle data */ }) .catch(error => { /* handle error */ });
Axios :
Récupérer :
Axios :
Gère les erreurs dans le bloc catch et considère tout code d'état en dehors de 2xx comme une erreur :
async function getData() { try { const response = await axios.get('/api/data'); // handle response } catch (error) { // handle error } }
Récupérer :
Nécessite une vérification manuelle de l'état :
async function getData() { try { const response = await fetch('/api/data'); const data = await response.json(); // handle data } catch (error) { // handle error } }
Il n'y a pas de réponse définitive car cela dépend de vos besoins :
EchoAPI est une plateforme de développement d'API collaborative tout-en-un offrant des outils pour concevoir, déboguer, tester et moquer des API. EchoAPI peut générer automatiquement du code Axios pour effectuer des requêtes HTTP.
Axios et fetch() sont des méthodes puissantes pour effectuer des requêtes HTTP en JavaScript. Choisissez celui qui correspond le mieux aux besoins et aux préférences de votre projet. L'utilisation d'outils comme EchoAPI peut améliorer votre flux de travail de développement, garantissant que votre code est précis et efficace. Bon codage !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!