Powrót do bloga

Używanie klienta HTTP Axios w aplikacji React: Poradnik

Używanie klienta HTTP Axios w aplikacji React: Poradnik

Wiele aplikacji internetowych na pewnym etapie swojego rozwoju staje przed koniecznością integracji z interfejsem REST API. W przypadku React-owych aplikacji internetowych możemy użyć Axios, lekkiego klienta HTTP opartego na $http usłudze w Angular.js v1.x. Jego funkcje są podobne do natywnego Fetch API.

. Axios opiera się na obietnicach (promises), co pozwala nam na włączenie JavaScript’owych async oraz await w celu uzyskania bardziej czytelnego kodu synchronicznego. Obsługuje również przechwytywanie i anulowanie żądań. Ponadto posiada wbudowaną ochronę po stronie klienta przed fałszowaniem żądań międzywitrynowych (CSRF).

W tym poradniku pokażemy, jak używać Axios do uzyskania dostępu do popularnego JSON Placeholder API w demonstracyjnej aplikacji React. Możesz dowiedzieć się więcej o formacie JSON w JavaScript z tego samouczka.

Wymagania wstępne

Aby wykonać kroki przedstawione w tym poradniku, będziesz potrzebować następujących komponentów:

Krok 1: Instalacja Axios w projekcie React

Axios jest bezpośrednio dostępny jako moduł npm. Sprawdź Axios na npm. Wszystko, czego potrzebujemy, to utworzenie projektu React i zainstalowanie pakietu Axios.

Następujące polecenie npx uruchomi create-react-app w celu utworzenia nowego projektu React. Nazwa projektu zostanie użyta do utworzenia dedykowanego katalogu dla projektu. Tutaj nazwaliśmy projekt react-axios-demo. Uruchom polecenie:

npx create-react-app

Zmień bieżący katalog na nowo utworzony katalog projektu:

Następnie wywołaj polecenie npm install, aby zainstalować Axios. Jeśli nie określono wersji, wówczas npm automatycznie pobierze i zainstaluje najnowszą wersję Axios:

npm install axios

Nasz projekt jest nowo gotowy do użycia Axios! Czas przetestować jego funkcje w działaniu.

Krok 2: Tworzenie żądania GET

W tym kroku pokażemy, jak utworzyć nowy komponent, który używa Axios do wysyłania żądania GET .

Najpierw utwórz nowy komponent PersonList, który będzie wyświetlał listę nazwisk. Utwórz dedykowany katalog do przechowywania komponentu:

mkdir -pv

Następnie utwórz plik PersonList.js :

Otwórz plik w edytorze tekstu. Dla wygody i czytelności używamy Visual Studio Code. Wprowadź następujący kod JavaScript:

 

this.state.persons

Tutaj:

  • Zaimportowaliśmy React i Axios, aby móc korzystać z nich obu w komponencie.

  • Podpinamy się pod metodę cyklu życia componentDidMount i wysyłamy żądanie GET.

Możesz użyć axios.get(<url>) z punktu końcowego API (endpointu), aby otrzymać obietnicę (zwraca obiekt odpowiedzi). Obiekt odpowiedzi zawiera pożądane dane. Następnie przypisujemy je do wartości person. Możemy również zebrać dodatkowe informacje o żądaniu, takie jak kod statusu w res.status lub dalsze informacje z res.request.

Następnie musimy dodać nasz komponent do głównego pliku App.js. Dodaj następujący kod:

 

import PersonList

Konfiguracja dla tego kroku jest zakończona. Możesz teraz uruchomić aplikację i przetestować ją w swojej ulubionej przeglądarce. Uruchom serwer deweloperski:

Axios React code screenshot 1

Jak widać, wynik pokazuje listę imion i nazwisk ludzi w losowej kolejności:

React app

Krok 3: Utworzenie żądania POST

W tej sekcji pokażemy, jak użyć biblioteki Axios do wykonania innej metody żądania HTTP o nazwie POST. Aby to zademonstrować, naszym celem jest utworzenie nowego komponentu w naszym projekcie React o nazwie PersonAdd.

Utwórz plik PersonAdd.js:

Axios React code screenshot 2

Następnie otwórz plik w edytorze tekstu i wprowadź następujący kod:

Axios React code screenshot 3

W tym kodzie pobieramy dane wejściowe użytkownika i wysyłamy (POST) zawartość do API. Wewnątrz funkcji handleSubmit zapobiegamy domyślnej akcji formularza i aktualizujemy stan o dane wprowadzone przez użytkownika. Podczas korzystania z POST zwraca ono ten sam obiekt odpowiedzi. Możemy użyć tego obiektu wewnątrz wywołania then. Aby zrealizować żądanie POST, przechwytujemy dane wejściowe użytkownika i dodajemy je wraz z żądaniem POST. Daje nam to odpowiedź. Rejestrujemy odpowiedź za pomocą console.log. Powinno to pokazać dane wejściowe user w formularzu.

Następnie dodaj komponent do App.js. Pełny kod powinien wyglądać następująco:

Axios React code screenshot 4

Teraz czas na przetestowanie zmian. Uruchom serwer deweloperski:

Sprawdź zmiany w przeglądarce internetowej:

Axios React code screenshot 5

Krok 4: Utworzenie żądania DELETE

W tej sekcji zademonstrujemy usuwanie elementów z API za pomocą axios.delete i użycia adresu URL jako parametru. Aby to zademonstrować, utwórz komponent PersonRemove. Utwórz plik PersonRemove.js w katalogu src/components:

Axios React code screenshot 6

Następnie otwórz plik w edytorze tekstu i dodaj następujący kod:

Axios React code screenshot 7

Tutaj obiekt res dostarcza informacji o żądaniu. Możemy następnie użyć console.log po przesłaniu formularza.

Następnie zaimplementuj komponent w App.js:

Axios React code screenshot 8

Czas ponownie przetestować nasz kod. Uruchom serwer:

Powinieneś zobaczyć nowy formularz, który pobiera nazwę użytkownika i usuwa ją z listy:

npm start

Step 5: Apply Base Instance in Axios

Teraz będziemy pracować z bazową instancją Axios. Tutaj możemy zdefiniować adres URL i inne elementy konfiguracyjne. Aby to zaimplementować, utwórz osobny plik api.js:

Axios React code screenshot 9

Otwórz go w edytorze tekstu i wprowadź następujący kod:

export default axios.create

Po jego skonfigurowaniu możemy go użyć wewnątrz komponentu PersonRemove. Oto jak będzie wyglądał kod:

Axios React code screenshot 10

Tutaj http://jsonplaceholder.typicode.com/ jest ustawiony jako bazowy adres URL. Teraz nie musimy już używać pełnego adresu URL za każdym razem, gdy odwołujemy się do punktu końcowego API.

Krok 6: Implementacja async i await

W tej sekcji przyjrzymy się, jak zaimplementować async oraz await do pracy z obietnicami. Słowo kluczowe await rozwiązuje obietnicę i zwraca wartość. Możemy przypisać tę wartość do zmiennej dla wygodniejszego użycia.

Oto jak będzie wyglądał zaktualizowany kod PersonRemove.js będzie wyglądał:

Implement async and await

Tutaj zastąpiliśmy .then(). Gdy obietnica zostanie rozwiązana, przechowujemy wartość w zmiennej response.

Podsumowanie

W tym samouczku omówiliśmy różne przykłady użycia biblioteki Axios do pracy z REST API. Kody pokazują tworzenie żądań HTTP i obsługę odpowiedzi.

Chcesz dowiedzieć się więcej o JavaScript? Sprawdź nasze inne poradniki dla początkujących dotyczące różnych pojęć i funkcji JavaScript, na przykład daty i czasu, manipulacji ciągami znaków, klas, oraz obiektów.

Miłego kodowania!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev jest projektantem kreatywnym w CloudSigma, skupiającym się na spójnej tożsamości biznesowej przy wykorzystaniu tradycyjnych i innowacyjnych kanałów marketingowych. Biegle łączy wizję artystyczną ze strategicznym marketingiem, tworząc wywierające wpływ narracje marki.

Komentarze

Brak komentarzy. Bądź pierwszy.