Axios este o opțiune foarte favorizată pentru efectuarea solicitărilor HTTP în JavaScript. Aflați cum să o faceți eficient cu ajutorul acestui ghid cuprinzător.

Axios este o bibliotecă JavaScript care oferă un API simplu pentru trimiterea de solicitări HTTP din codul JavaScript de la partea clientului sau codul Node.js de pe partea serverului. Axios este construit pe API-ul JavaScript Promise, care face codul asincron mai ușor de întreținut.

Noțiuni introductive cu Axios

Puteți utiliza Axios în aplicația dvs. folosind o rețea de livrare de conținut (CDN) sau instalându-l în proiectul dvs.

Pentru a utiliza Axios direct în HTML, copiați linkul CDN de mai jos și inserați-l în secțiunea de cap a fișierului HTML:

<scenariusrc=" https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js">scenariu>

Cu această abordare, puteți utiliza Axios și a acestuia metode HTTP în corpul scripturilor dvs. HTML. Axios poate, de asemenea consumați API-uri REST într-un cadru precum React.

Pentru a utiliza Axios într-un proiect Node.js, instalați-l în directorul de proiect folosind fie managerul de pachete npm, fie yarn:

instagram viewer

npm instalează axios
# sau
fire adauga axios

După instalare, puteți începe să utilizați Axios în proiectul dvs. JavaScript:

const axios = cere("axios");

De-a lungul acestui ghid, veți lucra cu cele gratuite JSONPlaceholder API. În timp ce acest API are un set de resurse, veți utiliza numai /comments și /posts puncte finale. Punctele finale sunt adrese URL specifice care pot fi accesate pentru a prelua sau manipula date.

Efectuarea cererilor GET cu Axios

Există mai multe moduri de a face o solicitare GET folosind Axios. Cu toate acestea, sintaxa depinde în general de preferințe.

Una dintre modalitățile de a face o solicitare GET este utilizarea axios() metoda cu un obiect care specifică metoda cererii ca obține și adresa URL la care trimiteți solicitarea.

De exemplu:

const axios = cere("axios");

axios({
metodă: "obține",
url: " https://jsonplaceholder.typicode.com/comments",
})
.apoi((res) => {
consolă.log (res.date);
})
.captură((a greșit) => {
consolă.eroare (eroare);
});

Acest exemplu creează o promisiune folosind modelul de programare asincronă prin înlănţuirea .apoi() și .captură() metode. Promisiunea înregistrează răspunsul în consolă atunci când cererea are succes și înregistrează mesajul de eroare dacă cererea eșuează.

Axios oferă, de asemenea, o modalitate mai ușoară de a face cereri GET care elimină necesitatea de a trece un obiect prin înlănțuirea .obține() metoda la axios instanță.

De exemplu:

axios
.obține(" https://jsonplaceholder.typicode.com/comments")
.apoi((res) => {
consolă.log (res.date);
})
.captură((a greșit) => {
consolă.eroare (eroare);
});

Efectuarea solicitărilor POST cu Axios

Efectuarea unei cereri POST cu Axios este similară cu efectuarea unei cereri GET. Puteți trimite date către un server folosind această solicitare.

Fragmentul de cod de mai jos este un exemplu de utilizare a lui Axios .post() metodă:

axios
.post(" https://jsonplaceholder.typicode.com/comments", {
Nume: „Jackson Smith”,
e-mail: [email protected],
corp: „Aceasta este o piesă de artă”.,
})
.apoi((res) => {
consolă.log (res.date);
})
.captură((a greșit) => {
consolă.eroare (eroare);
});

Codul face o solicitare POST către API-ul JSONPlaceholder pentru a crea un nou comentariu. The axios.post metoda trimite date către /comments punct final.

Datele trimise în cerere sunt un obiect cu a Nume, e-mail, și corp proprietate. Dacă cererea are succes, apoi metoda înregistrează datele răspunsului în consolă. Și dacă există o eroare, captură metoda înregistrează eroarea în consolă.

Efectuarea cererilor PUT/PATCH cu Axios

Puteți utiliza cererea PUT sau PATCH pentru a actualiza o resursă existentă pe server. În timp ce PUT înlocuiește întreaga resursă, PATCH actualizează doar câmpurile specificate.

Pentru a efectua o solicitare PUT sau PATCH cu Axios, trebuie să utilizați .a pune() sau .plasture() metode, respectiv.

Iată un exemplu despre cum să utilizați aceste metode pentru a actualiza e-mail proprietatea comentariului cu un id de 100:

const axios = cere("axios");

axios
.obține(" https://jsonplaceholder.typicode.com/comments/100")
.apoi((res) => {
consolă.log (res.data.email);
})
.captură((a greșit) => {
consolă.eroare (eroare);
});

// Ieșire:
// „[email protected]

axios
.plasture(" https://jsonplaceholder.typicode.com/comments/100", {
e-mail: [email protected],
})
.apoi((res) => {
consolă.log (res.data.email);
})
.captură((a greșit) => {
consolă.eroare (eroare);
});

// Ieșire:
// „[email protected]”,

Acest program face mai întâi o solicitare GET către punctul final " https://jsonplaceholder.typicode.com/comments/100". Apoi înregistrează e-mail proprietatea comentariului cu un ID de 100 la consolă. Facem o solicitare GET, astfel încât să puteți vedea ce s-a schimbat după ce ați făcut cererea PATCH.

A doua cerere este o solicitare PATCH către același punct final. Acest cod actualizează e-mailul comentariului la [email protected].

Efectuarea solicitărilor DELETE cu Axios

Puteți folosi ȘTERGE cerere de ștergere a unei resurse de pe server.

Luați următorul exemplu despre cum să utilizați .șterge() metoda de a șterge o resursă de pe server:

axios
.șterge(" https://jsonplaceholder.typicode.com/comments/10")
.apoi((res) => {
consolă.log (res.date);
})
.captură((a greșit) => {
consolă.eroare (eroare);
});
//Output:
// {}

Înregistrând un obiect gol în consolă, codul de mai sus arată că a șters comentariul cu ID-ul 10.

Efectuarea de solicitări simultane cu Axios

Puteți prelua date de la mai multe puncte finale simultan folosind Axios. Pentru a face acest lucru, trebuie să utilizați .toate() metodă. Această metodă acceptă o serie de solicitări ca parametru și se rezolvă numai atunci când primiți toate răspunsurile.

În exemplul următor, .toate() metoda preia date de la două puncte finale simultan:

axios
.toate([
axios.get(" https://jsonplaceholder.typicode.com/comments? _limit=2"),
axios.get(" https://jsonplaceholder.typicode.com/posts? _limit=2"),
])
.apoi(
axios.spread((comentarii, postări) => {
consolă.log (comentarii.date);
consolă.log (posts.data);
})
)
.captură((a greșit) =>consolă.eroare (err));

Blocul de cod de mai sus trimite cereri simultan și apoi transmite răspunsurile către .apoi() metodă. a lui Axios .răspândire() metoda separă răspunsurile și atribuie fiecare răspuns variabilei sale.

În cele din urmă, consola înregistrează fișierul date proprietatea celor două răspunsuri: comentarii și postări.

Interceptarea cererilor cu Axios

Uneori, poate fi necesar să interceptați o solicitare înainte de a ajunge la server. Puteți folosi Axios interceptors.request.use() metoda de interceptare a cererilor.

În exemplul următor, metoda înregistrează tipul de solicitare în consolă pentru fiecare solicitare făcută:

axios.interceptors.request.use(
(config) => {
consolă.Buturuga(`${config.method} cererea făcută`);
întoarcere config;
},
(eroare) => {
întoarcerePromisiune.reject (eroare);
}
);

axios
.obține(" https://jsonplaceholder.typicode.com/comments? _limit=2")
.apoi((res) =>consolă.log (res.date))
.captură((a greșit) =>consolă.eroare (err));

Programul definește un interceptor Axios folosind axios.interceptori.cerere.utilizare metodă. Această metodă necesită config și eroare obiectele ca argumente. The config obiectul conține informații despre cerere, inclusiv metoda solicitării (config.metoda) și adresa URL a cererii (config.url).

Funcția interceptor returnează config obiect, permițând cererii să decurgă normal. Dacă există o eroare, funcția returnează cele respinse Promisiune obiect.

În cele din urmă, programul face o cerere de testare a interceptorului. Consola va înregistra tipul de solicitare făcută, în acest caz, o cerere GET.

Mai mult la Axios

Ați învățat cum să faceți și să interceptați cereri în proiectele dvs. folosind Axios. Multe alte funcții, cum ar fi transformarea solicitărilor și utilizarea instanțelor Axios, sunt disponibile pentru dvs., ca dezvoltator JavaScript, pentru a le explora. Axios rămâne o opțiune preferată pentru a face solicitări HTTP în aplicațiile JavaScript. Cu toate acestea, Fetch API este o altă opțiune bună pe care o puteți explora.