Επιστροφή στο blog

Χρήση του HTTP client Axios σε μια εφαρμογή React: Ένας οδηγός

Χρήση του HTTP client Axios σε μια εφαρμογή React: Ένας οδηγός

Πολλές διαδικτυακές εφαρμογές αντιμετωπίζουν την ανάγκη διασύνδεσης με ένα REST API σε κάποιο σημείο της ανάπτυξής τους. Για React-based διαδικτυακές εφαρμογές, μπορούμε να χρησιμοποιήσουμε το Axios, έναν ελαφρύ πελάτη HTTP που βασίζεται στην υπηρεσία $http εντός του Angular.js v1.x. Τα χαρακτηριστικά είναι παρόμοια με το εγγενές Fetch API.

Το Axios βασίζεται σε promises, δίνοντάς μας τη δυνατότητα να ενσωματώσουμε τα async και await για πιο ευανάγνωστο σύγχρονο κώδικα. Υποστηρίζει επίσης αναχαίτιση και ακύρωση αιτημάτων. Επιπλέον, υπάρχει ενσωματωμένη προστασία από την πλευρά του πελάτη έναντι πλαστογράφησης αιτημάτων μεταξύ ιστότοπων (cross-site request forgery).

Σε αυτόν τον οδηγό, θα παρουσιάσουμε πώς να χρησιμοποιήσετε το Axios για να αποκτήσετε πρόσβαση στο δημοφιλές JSON Placeholder API σε μια δοκιμαστική εφαρμογή React. Μπορείτε να μάθετε περισσότερα για τη μορφή JSON στη JavaScript από αυτό το σεμινάριο.

Προαπαιτούμενα

Για να ολοκληρώσετε τα βήματα που παρουσιάζονται σε αυτόν τον οδηγό, θα χρειαστείτε τα ακόλουθα στοιχεία:

Βήμα 1: Εγκατάσταση του Axios στο έργο React

Το Axios είναι άμεσα διαθέσιμο ως μια ενότητα npm. Δείτε το Axios στο npm. Το μόνο που χρειαζόμαστε είναι να δημιουργήσουμε ένα έργο React και να εγκαταστήσουμε το πακέτο Axios.

Η ακόλουθη εντολή npx θα εκτελέσει το create-react-app για να δημιουργήσει ένα νέο έργο React. Το όνομα του έργου θα χρησιμοποιηθεί για τη δημιουργία ενός αποκλειστικού καταλόγου για το έργο. Εδώ, ονομάσαμε το έργο react-axios-demo. Εκτελέστε την εντολή:

npx create-react-app

Αλλάξτε τον τρέχοντα κατάλογο στον νεοδημιουργηθέντα κατάλογο του έργου:

Στη συνέχεια, καλέστε την εντολή npm install για να εγκαταστήσετε το Axios. Εάν δεν καθοριστεί έκδοση, τότε το npm θα κατεβάσει και θα εγκαταστήσει αυτόματα την τελευταία έκδοση του Axios:

npm install axios

Το έργο μας είναι τώρα έτοιμο να χρησιμοποιήσει το Axios! Ήρθε η ώρα να θέσουμε τα χαρακτηριστικά του σε λειτουργία.

Βήμα 2: Κατασκευή ενός αιτήματος GET

Σε αυτό το βήμα, θα παρουσιάσουμε τη δημιουργία ενός νέου στοιχείου που χρησιμοποιεί το Axios για την αποστολή ενός αιτήματος GET .

Αρχικά, δημιουργήστε ένα νέο στοιχείο PersonList που θα εμφανίζει μια λίστα ονομάτων. Δημιουργήστε έναν αποκλειστικό κατάλογο για την αποθήκευση του στοιχείου:

mkdir -pv

Στη συνέχεια, δημιουργήστε το αρχείο PersonList.js :

Ανοίξτε το αρχείο σε έναν επεξεργαστή κειμένου. Χρησιμοποιούμε το Visual Studio Code για άνεση και αναγνωσιμότητα. Εισαγάγετε τον ακόλουθο κώδικα JavaScript:

 

this.state.persons

Εδώ:

  • Έχουμε εισαγάγει το React και το Axios ώστε να μπορούμε να τα χρησιμοποιήσουμε και τα δύο στο στοιχείο.

  • Συνδεόμαστε στο hook κύκλου ζωής componentDidMount και στέλνουμε ένα αίτημα GET.

Μπορείτε να χρησιμοποιήσετε το axios.get(<url>) από ένα τελικό σημείο API για να λάβετε ένα promise (επιστρέφει ένα αντικείμενο απόκρισης). Μέσα στο αντικείμενο απόκρισης, περιέχονται τα επιθυμητά δεδομένα. Στη συνέχεια, τα εκχωρούμε στην τιμή του person. Μπορούμε επίσης να συλλέξουμε πρόσθετες πληροφορίες σχετικά με το αίτημα, όπως τον κωδικό κατάστασης στο res.status ή περισσότερες πληροφορίες από το res.request.

Στη συνέχεια, πρέπει να προσθέσουμε το στοιχείο μας στο κύριο App.js αρχείο. Προσθέστε τους ακόλουθους κώδικες:

 

import PersonList

Η ρύθμιση παραμέτρων ολοκληρώθηκε για αυτό το βήμα. Μπορείτε τώρα να εκτελέσετε την εφαρμογή και να τη δοκιμάσετε χρησιμοποιώντας το αγαπημένο σας πρόγραμμα περιήγησης. Εκκινήστε τον διακομιστή ανάπτυξης:

Axios React code screenshot 1

Όπως μπορούμε να δούμε, το αποτέλεσμα εμφανίζει μια λίστα με ονόματα ανθρώπων σε τυχαία σειρά:

React app

Βήμα 3: Δημιουργία αιτήματος POST

Σε αυτήν την ενότητα, θα παρουσιάσουμε τη χρήση του Axios για την εκτέλεση μιας άλλης μεθόδου αιτήματος HTTP που ονομάζεται POST. Για να το δείξουμε αυτό, ο στόχος μας είναι να δημιουργήσουμε ένα νέο στοιχείο στο React έργο μας με το όνομα PersonAdd.

Δημιουργήστε το αρχείο PersonAdd.js:

Axios React code screenshot 2

Στη συνέχεια, ανοίξτε το αρχείο σε έναν επεξεργαστή κειμένου και εισαγάγετε τον ακόλουθο κώδικα:

Axios React code screenshot 3

Σε αυτόν τον κώδικα, λαμβάνουμε τα δεδομένα εισόδου του χρήστη και κάνουμε POST το περιεχόμενο σε ένα API. Μέσα στη handleSubmit συνάρτηση, αποτρέπουμε την προεπιλεγμένη ενέργεια της φόρμας και ενημερώνουμε το state με τα δεδομένα εισόδου του χρήστη. Όταν χρησιμοποιούμε POST επιστρέφει το ίδιο αντικείμενο απόκρισης. Μπορούμε να χρησιμοποιήσουμε το αντικείμενο μέσα σε μια κλήση then . Για να εκπληρώσουμε το POST αίτημα, καταγράφουμε τα δεδομένα εισόδου του χρήστη και τα προσθέτουμε μαζί με το POST αίτημα. Αυτό μας δίνει μια απόκριση. Καταγράφουμε την απόκριση χρησιμοποιώντας το console.log. Θα πρέπει να εμφανίζει τα δεδομένα εισόδου του user στη φόρμα.

Στη συνέχεια, προσθέστε το στοιχείο στο App.js. Ο πλήρης κώδικας θα πρέπει να μοιάζει κάπως έτσι:

Axios React code screenshot 4

Τώρα, ήρθε η ώρα να δοκιμάσετε τις αλλαγές. Εκκινήστε τον διακομιστή ανάπτυξης:

Ελέγξτε την αλλαγή στο πρόγραμμα περιήγησης ιστού:

Axios React code screenshot 5

Βήμα 4: Δημιουργία αιτήματος DELETE

Σε αυτήν την ενότητα, θα δείξουμε τη διαγραφή στοιχείων από ένα API με τη βοήθεια του axios.delete και χρησιμοποιώντας ένα URL ως παράμετρο. Για να το δείξουμε αυτό, δημιουργήστε το στοιχείο PersonRemove. Δημιουργήστε το αρχείο PersonRemove.js στον src/components κατάλογο:

Axios React code screenshot 6

Μετά από αυτό, ανοίξτε το αρχείο σε έναν επεξεργαστή κειμένου και προσθέστε τον ακόλουθο κώδικα:

Axios React code screenshot 7

Εδώ, το res αντικείμενο παρέχει τις πληροφορίες σχετικά με το αίτημα. Στη συνέχεια, μπορούμε να χρησιμοποιήσουμε το console.log αφού υποβληθεί η φόρμα.

Στη συνέχεια, εφαρμόστε το component στο App.js:

Axios React code screenshot 8

Ώρα να δοκιμάσουμε ξανά τον κώδικά μας. Εκκινήστε τον διακομιστή:

Θα πρέπει να βρείτε μια νέα φόρμα που παίρνει το όνομα του χρήστη και το αφαιρεί από τη λίστα:

npm start

Βήμα 5: Εφαρμογή Base Instance στο Axios

Τώρα, θα εργαστούμε με το base instance του Axios. Εδώ, μπορούμε να ορίσουμε ένα URL και άλλα στοιχεία παραμετροποίησης. Για να το εφαρμόσετε, δημιουργήστε ένα ξεχωριστό αρχείο api.js:

Axios React code screenshot 9

Ανοίξτε το σε έναν επεξεργαστή κειμένου και εισαγάγετε τον ακόλουθο κώδικα:

export default axios.create

Μόλις οριστεί, μπορούμε να το χρησιμοποιήσουμε μέσα στο PersonRemove component. Δείτε πώς θα μοιάζει ο κώδικας:

Axios React code screenshot 10

Εδώ, το http://jsonplaceholder.typicode.com/ έχει οριστεί ως το base URL. Τώρα, δεν χρειάζεται πλέον να χρησιμοποιούμε ολόκληρο το URL κάθε φορά που καλούμε ένα endpoint του API.

Βήμα 6: Εφαρμογή async και await

Σε αυτήν την ενότητα, θα δούμε πώς να εφαρμόσουμε τα async και await για να εργαστούμε με promises. Η λέξη-κλειδί await επιλύει το promise και επιστρέφει την τιμή. Μπορούμε να εκχωρήσουμε αυτήν την τιμή σε μια μεταβλητή για πιο εύκολη χρήση.

Δείτε πώς θα μοιάζει ο ενημερωμένος κώδικας του PersonRemove.js :

Implement async and await

Εδώ, αντικαταστήσαμε .then(). Μόλις promise επιλυθεί, αποθηκεύουμε την τιμή στη μεταβλητή response.

Τελικές σκέψεις

Σε αυτόν τον οδηγό, εξερευνήσαμε διάφορα παραδείγματα χρήσης του Axios για εργασία με REST API. Ο κώδικας παρουσιάζει τη δημιουργία αιτημάτων HTTP και τον χειρισμό αποκρίσεων.

Ενδιαφέρεστε να μάθετε περισσότερα για τη JavaScript; Δείτε τους άλλους οδηγούς μας για αρχάριους σχετικά με διάφορες έννοιες και δυνατότητες της JavaScript, για παράδειγμα, ημερομηνία και ώρα, χειρισμό συμβολοσειρών, κλάσεις, και αντικείμενα.

Καλό προγραμματισμό!

author

Hark Labs

Συγγραφέας · CloudSigma

Ο Preslav Dobrev είναι Δημιουργικός Σχεδιαστής στην CloudSigma, με εστίαση στη συνεπή επιχειρηματική ταυτότητα μέσω παραδοσιακών και καινοτόμων καναλιών μάρκετινγκ. Διαθέτει την ικανότητα να συνδυάζει το καλλιτεχνικό όραμα με το στρατηγικό μάρκετινγκ για τη δημιουργία εντυπωσιακών αφηγήσεων επωνυμίας.

Σχόλια

Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.