Maison >interface Web >js tutoriel >Comment obtenir des données à l'aide de l'API JavaScript Fetch ?

Comment obtenir des données à l'aide de l'API JavaScript Fetch ?

WBOY
WBOYavant
2023-08-24 17:13:021207parcourir

如何使用 JavaScript Fetch API 获取数据?

De nos jours, JavaScript est très utile pour écrire du code front-end et back-end. De plus, c’est également le langage de programmation le plus utilisé.

De plus, nous devons obtenir des données d'autres serveurs tout en développant des applications en temps réel. Nous pouvons utiliser l'API (Application Programming Interface) pour obtenir des données d'autres serveurs ou bases de données.

Ici, nous allons apprendre différentes façons d'obtenir des données à l'aide de JavaScript.

Utilisez la méthode fetch()

fetch() est la méthode utilisée par le navigateur pour obtenir les données de l'API. Il prend l'URL de l'API comme premier paramètre dont nous avons besoin pour obtenir les données et les options comme deuxième paramètre. Ces options peuvent contenir des en-têtes et des jetons d'authentification.

Grammaire

Les utilisateurs peuvent utiliser la syntaxe suivante pour fetch() afin d'obtenir des données.

fetch(baseURL)
.then(data => {
   // use data here
}

Dans la syntaxe ci-dessus, baseURL est une API pour obtenir des données.

Exemple 1

Dans l'exemple ci-dessous, lorsque l'utilisateur clique sur le bouton, il exécute la fonction fetchData(). Dans la fonction fetchData(), nous utilisons la méthode fetch() pour récupérer les données de l'API. Après cela, nous avons traité les réponses et les erreurs. Les utilisateurs peuvent voir les données que nous obtenons de l'API dans la sortie.

<html>
<body>
   <h2>Using the <i> fetch() browser method </i> to fetch data from API</h2>
   <div id = "output"> </div> 
   <button onclick = "fetchData()"> Fetch API to get data </button>
   <script>
      let output = document.getElementById('output');
      function fetchData() {
         fetch('https://dummyjson.com/products/1')
         .then(response => response.json())
         .then(data => {
            output.innerHTML += "id = " + data.id + "<br/>";
            output.innerHTML += "brand = " + data.brand + "<br/>";
            output.innerHTML += "category = " + data.category + "<br/>";
            output.innerHTML += "price = " + data.price + "<br/>";
            output.innerHTML += "rating = " + data.rating + "<br/>";
            output.innerHTML += "stock = " + data.stock + "<br/>";
         })
      }
   </script>
</body>
</html>

Utilisation du package axios npm

axios est un package NPM qui permet aux développeurs d'interagir avec les API en effectuant des requêtes telles que GET, POST, PUT, etc. Ici, nous utiliserons axios pour faire une requête GET afin d'obtenir les données en JavaScript.

Grammaire

Les utilisateurs peuvent utiliser axios pour obtenir des données de l'API selon la syntaxe ci-dessous.

axios.get(URL)
.then((response) => {
   // use response
} 

Dans la syntaxe ci-dessus, nous avons utilisé la méthode axios.get() pour obtenir les données de l'API.

Exemple 2

Dans cet exemple, nous résolvons la promesse en utilisant les blocs then() et catch() obtenus à partir du serveur ou de la base de données. Nous exploitons les données du bloc then() et l'erreur du bloc catch().

<html>
<head>
   <script src ="https://cdnjs.cloudflare.com/ajax/libs/axios/1.2.3/axios.min.js"></script>
</head>
<body>
   <h2>Using the <i> Axios NPM package </i> to fetch data from API</h2>
   <div id = "output"> </div>
   <button onclick = "fetchData()"> Fetch data using Axios </button>
   <script>
      let output = document.getElementById('output');
      function fetchData() {
         axios.get("https://jsonplaceholder.typicode.com/todos/1") 
         .then((response) => {
            output.innerHTML += "userId : " + response.data.userId + "<br/>";
            output.innerHTML += "id : " + response.data.id + "<br/>";
            output.innerHTML += "title : " + response.data.title + "<br/>";
            output.innerHTML += "completed : " + response.data.completed + "<br/>";
         })
         .catch((err) => {
            output.innerHTML += "The error is - " + err + "<br/>";
         })
      }
   </script>
</body>
</html>

Exemple 3

Dans l'exemple ci-dessous, nous utilisons axios pour obtenir des données via la syntaxe async/wait. Nous avons rendu la fonction getData() asynchrone. De plus, nous avons utilisé le mot-clé wait dans axios pour suspendre l'exécution de la fonction jusqu'à ce que nous obtenions une réponse de l'API.

<html>
<head>
   <script src ="https://cdnjs.cloudflare.com/ajax/libs/axios/1.2.3/axios.min.js"></script>
</head>
<body>
   <h2>Using the <i> Axios NPM package </i> with Async/await syntax to fetch data from API</h2>
   <div id = "output"> </div>
   <button onclick = "getData()"> get data using Axios </button>
   <script>
      let output = document.getElementById('output');
      async function getData() {
         let response = await
         axios.get("https://jsonplaceholder.typicode.com/todos/1")
         for (let key in response.data) {
            output.innerHTML += key + " - " + response.data[key] + "<br/>";
         }
      }
   </script>
</body>
</html>

Utilisation de l'API Web XMLHttpRequest

L'API Web XMLHttpRequest nous permet de créer des modules pour obtenir des données. Nous pouvons créer un objet et l'initialiser en utilisant XMLHttpRequest. Nous pouvons ensuite utiliser cet objet pour ouvrir une requête GET.

Après cela, nous pouvons appeler la fonction de rappel lorsque le XMLHttpRequest est chargé. La fonction de rappel peut obtenir l'état de la réponse et renvoyer la réponse ou l'erreur en conséquence.

Grammaire

const xmlRequest = new XMLHttpRequest();
xmlRequest.open('GET', apiURL);
xmlRequest.responseType = 'json';
xmlRequest.onload = function () {
   // handle the response from API
}
xmlRequest.send(); 

Dans la syntaxe ci-dessus, nous ouvrons d'abord la requête à l'aide de la méthode open(), puis traitons la réponse de l'API à l'aide de l'événement onload.

Exemple 4

Dans l'exemple ci-dessous, nous devons créer un module personnalisé à l'aide de l'API Web XMLHttpRequest() pour obtenir les données de l'API. La fonction customRequest() contient des modules personnalisés.

Ensuite, nous appelons la fonction customRequest() en passant l'URL en paramètre et utilisons un bloc then() pour résoudre la promesse renvoyée par la fonction customRequest().

<html>
<body>
   <h2>Using the <i> XMLHttpRequest web API </i> to fetch data from API</h2>
   <div id = "output"> </div>
   <button onclick = "getData()"> get data </button>
   <script>
      let output = document.getElementById('output');
      const customRequest = (apiURL) => {
         return new Promise((res, rej) => {
      
            // Create a new Object of XMLHttpRequest
            const xmlRequest = new XMLHttpRequest();
            
            // open a get request
            xmlRequest.open('GET', apiURL);
            
            // set response type
            xmlRequest.responseType = 'json';
            xmlRequest.onload = function () {
               // resolve the promise when we get a successful response
               if (xmlRequest.status == 200) {
                  res(xmlRequest.response);
               } else {
                  
                  // reject promise on error
                  rej(xmlRequest.response);
               }
            };
            
            // send request
            xmlRequest.send();
         }); 
      };
      
      // making the get request from URL
      const getData = async () => {
         try {
            const data = await customRequest(
               'https://dummyjson.com/products/1',
            );
            output.innerHTML += "category = " + data.category + "<br/>";
            output.innerHTML += "price = " + data.price + "<br/>";
            output.innerHTML += "rating = " + data.rating + "<br/>";
            output.innerHTML += "stock = " + data.stock + "<br/>";
         } catch (err) {
            output.innerHTML += "The error is : " + err + "<br/>";
         }
      };
   </script>
</body>
</html> 

Nous avons appris trois manières différentes d'obtenir des données de l'API. La meilleure façon est d'utiliser la méthode fetch() du navigateur car nous n'avons pas besoin d'installer de module pour l'utiliser. De plus, les utilisateurs doivent utiliser tous les modules avec une syntaxe async/wait.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer