Logo Hpv 4 Learning
Academy
Web Agency
javascript

Come funziona un API in Javascript

By Hpv4Learning 2 min05/03/2022
"In questo progetto andremo a realizzare una semplicissima pagina web che andrà ad interagire con una API. "
Cat Facts

Troverai nel progetto

Che cosa realizzaremo in questo progetto ?

In questo progetto andremo a realizzare una semplicissima pagina web che andrà ad interagire con una API. L'Api in questione si chiama Cat Fact API

Durante la durata del progetto andremo a vedere tutti imetodi tramite i quali in Javascript è possibile effettuare una chiamata API, partendo dagli XHR Object fino ad arrivare all'uso di fetch.

XHR Object

XHR è una sigla che sta per XMLHttpRequest, il quale è un'oggetto built-in che permette di effetttuare chiamate in Javascipt.

Sicuramente non è il metodo più moderno ed intuitivo che esista, ma è importante avere un'infarinatura anche di questo in quanto potrebbe capitarvi di lavorare a progetti abbastanza obsoleti in cui questa sintassi è presente.

Come prima cosa è molto importante dichiarare una nuova istanza dell'oggetto.

const xhr = new XMLHttpRequest();

Successivamente inizializziamo il costruttore tramite il metodo open(), al quale passiamo il metodo HTTP (GET, PPOST, PUT), e l' url a cui effetuare la chiamata

xhr.open('GET', url);

A questo punto usiamo il metodo send() per effettuare la chiamata al server.

xhr.send();

Infine andimao ad effettuare dei controlli sullo stato della richiesta per capire come e se ritornare la risposta del server. Alla fine il codice risultà così:

const xhr = new XMLHttpRequest();
  xhr.open("GET", url);
  xhr.send();
  7;
  xhr.onreadystatechange = function () {
    if (xhr.readyState !== 4) return;
    if (xhr.status === 200) {
      const { value: fact } = JSON.parse(xhr.responseText);
      content.textContent = fact;
    } else {
      console.log({
        status: xhr.status,
        text: xhr.statusText,
      });
    }
  };

Promise

A questo punto possiamo aggiungere le promise, quindi inizieremo ad utilizzare il .then e .catch() dopo la chiamata; chiederemo dei dati, li aspetteremo e quando arriveranno verranno gestiti.

Inseriamo tutto il blocco di codice scritto precedentemente in una funzione, la quale ritornerà una promise.

const getData = (url) => {
  return new Promise((resolve, reject) => {
    const xhr = new XMLHttpRequest();
    xhr.open("GET", url);
    xhr.send();
    xhr.onreadystatechange = () => {
      if (xhr.readyState !== 4) return;
      if (xhr.status === 200) {
        resolve(xhr.responseText);
      } else {
        reject({
          status: xhr.status,
          text: xhr.statusText,
        });
      }
    };
  });
}

A questo punto dovremo invocare questa funzione. Se i dati verranno restituiti correttamente entreremo nel .then e stamperemo in console ciò che ci viene restituito, altrimenti, tramite il catch andremo a catturare l'errore verificatosi e lo andremo a stampare in console.

getData(URL)
  .then((response) => console.log(response))
  .catch((err) => console.log(err));

Fetch dei dati utilizzando try/catch e async/await

Ora è arrivato il momento di riscrivere tutto con una sintassi più moderna, chiara e leggibile.

Andremo ad utilizzare il metodo fetch, al quale basta passare l'url in cui effettuare la chiamata.

Questo verrà effettuato all'interno di un blocco try/catch. Nel try effetuiamo la chiamata e gestiamo i dati, mentre nel catch ci occupiamo solamente della gestione degli errori.

Per risolvere le Promise andremo ad utilizzare le keywords async/await, tramite le quali ci basterà dichiarare la funzione come async, ed utilizzare await ogni volta che una promise va risolta.

In questo modo:

const getData = async () => {
  try {
    const data = await fetch(URL);
    const response = await data.json();
    console.log(response.fact);
  } catch (error) {
    console.log(error);
  }
};

Prossimo Progetto

Come usare un API in AJAX in Javascript

Come usare un API in AJAX in Javascript

Grazie ad un API otterremo i dati casuali degli iscritti su Git Hub

javascript

Informazioni aggiuntive

Livello: Principiante

239 lezioni

25 ore di videocorso

11 Progetti pratici

558 studenti iscritti

Voto Medio:

4.5

Prezzo originale: 29.90€

Supporto Premium

text

Scopri il corso completo

Corso di Javascript e Typescript...


558

4.5

Copertina
Corso di Javascript e Types...