Zpět na blog

Použití HTTP klienta Axios v aplikaci React: Návod

Použití HTTP klienta Axios v aplikaci React: Návod

Mnoho webových aplikací čelí v určitém okamžiku svého vývoje nutnosti propojení s REST API. Pro React-ové webové aplikace můžeme použít Axios, lehkého HTTP klienta založeného na $http službě v rámci Angular.js v1.x. Funkce jsou podobné nativnímu Fetch API.

Axios je založen na promisech, což nám umožňuje začlenit JavaScriptové async a await pro čitelnější synchronní kód. Podporuje také zachytávání a rušení požadavků. Navíc je k dispozici vestavěná ochrana na straně klienta proti cross-site request forgery.

V této příručce si ukážeme, jak použít Axios pro přístup k populárnímu JSON Placeholder API v ukázkové aplikaci React. Více se o formátu JSON v JavaScriptu dozvíte v tomto návodu.

Požadavky

K dokončení kroků popsaných v této příručce budete potřebovat následující komponenty:

Krok 1: Instalace Axios v projektu React

Axios je přímo dostupný jako npm modul. Podívejte se na Axios na npm. Vše, co potřebujeme, je vytvořit projekt React a nainstalovat balíček Axios.

Následující příkaz npx spustí create-react-app pro vytvoření nového projektu React. Název projektu bude použit k vytvoření vyhrazeného adresáře pro projekt. Zde jsme projekt pojmenovali react-axios-demo. Spusťte příkaz:

npx create-react-app

Změňte aktuální adresář na nově vytvořený adresář projektu:

Dále spusťte příkaz npm install pro instalaci Axios. Pokud není specifikována žádná verze, pak npm automaticky stáhne a nainstaluje nejnovější verzi Axios:

npm install axios

Náš projekt je nyní připraven k použití Axios! Je čas uvést jeho funkce do praxe.

Krok 2: Sestavení požadavku GET

V tomto kroku si ukážeme vytvoření nové komponenty, která používá Axios k odeslání požadavku GET request.

Nejprve vytvořte novou komponentu PersonList, která bude zobrazovat seznam jmen. Vytvořte vyhrazený adresář pro uložení komponenty:

mkdir -pv

Dále vytvořte soubor PersonList.js :

Otevřete soubor v textovém editoru. Pro pohodlí a čitelnost používáme Visual Studio Code. Zadejte následující kód JavaScriptu:

 

this.state.persons

Zde:

  • Importovali jsme React and Axios, abychom je mohli oba v komponentě použít.

  • Připojíme se k životnímu cyklu componentDidMount a odešleme požadavek GET.

Můžete použít axios.get(<url>) z koncového bodu API pro získání promise (vrací objekt odpovědi). V rámci objektu odpovědi jsou obsažena požadovaná data. Ty pak přiřadíme k hodnotě person. Můžeme také získat další informace o požadavku, jako je stavový kód pod res.status nebo další informace z res.request.

Dále musíme přidat naši komponentu do hlavního App.js souboru. Přidejte následující kód:

 

import PersonList

Konfigurace pro tento krok je dokončena. Nyní můžete aplikaci spustit a otestovat ji ve svém oblíbeném prohlížeči. Spusťte vývojový server:

Axios React code screenshot 1

Jak vidíme, výstup zobrazuje seznam jmen lidí v náhodném pořadí:

React app

Krok 3: Sestavení požadavku POST

V této části si ukážeme použití knihovny Axios k provedení další metody HTTP požadavku s názvem POST. Abychom to demonstrovali, naším cílem je vytvořit v našem projektu React novou komponentu s názvem PersonAdd.

Vytvořte soubor PersonAdd.js:

Axios React code screenshot 2

Poté otevřete soubor v textovém editoru a zadejte následující kód:

Axios React code screenshot 3

V tomto kódu přijímáme vstup od uživatele a odesíláme (POST) obsah do API. Uvnitř funkce handleSubmit zabraňujeme výchozí akci formuláře a aktualizujeme stav podle vstupu uživatele. Při použití POST vrací stejný objekt odpovědi. Tento objekt můžeme použít uvnitř volání then. Pro splnění požadavku POST zachycujeme vstup uživatele a přidáváme jej spolu s požadavkem POST. To nám dává odpověď. Odpověď zaznamenáváme pomocí console.log. Mělo by to zobrazit vstup user ve formuláři.

Dále přidejte komponentu do App.js. Celý kód by měl vypadat takto:

Axios React code screenshot 4

Nyní je čas otestovat změny. Spusťte vývojový server:

Zkontrolujte změnu ve webovém prohlížeči:

Axios React code screenshot 5

Krok 4: Sestavení požadavku DELETE

V této části si ukážeme mazání položek z API pomocí axios.delete a použitím URL jako parametru. Pro demonstraci vytvořte komponentu PersonRemove. Vytvořte soubor PersonRemove.js v adresáři src/components:

Axios React code screenshot 6

Poté otevřete soubor v textovém editoru a přidejte následující kód:

Axios React code screenshot 7

Zde objekt res nabízí informace o požadavku. Poté můžeme použít console.log po odeslání formuláře.

Dále implementujte komponentu do App.js:

Axios React code screenshot 8

Je čas znovu otestovat náš kód. Spusťte server:

Měli byste vidět nový formulář, který přijímá jméno uživatele a odstraní ho ze seznamu:

npm start

Krok 5: Použití základní instance v Axios

Nyní budeme pracovat se základní instancí Axios. Zde můžeme definovat URL a další konfigurační prvky. Chcete-li ji implementovat, vytvořte samostatný soubor api.js:

Axios React code screenshot 9

Otevřete jej v textovém editoru a zadejte následující kód:

export default axios.create

Jakmile je nastaven, můžeme jej použít uvnitř komponenty PersonRemove. Kód bude vypadat následovně:

Axios React code screenshot 10

Zde je http://jsonplaceholder.typicode.com/ nastaveno jako základní URL. Nyní již nemusíme používat celou URL pokaždé, když přistupujeme k endpointu API.

Krok 6: Implementace async a await

V této části se podíváme na to, jak implementovat async a await pro práci s promisy. Klíčové slovo await vyhodnotí promise a vrátí hodnotu. Tuto hodnotu do proměnné pro pohodlnější použití.

Zde je ukázka toho, jak bude vypadat aktualizovaný kód PersonRemove.js:

Implement async and await

Zde jsme nahradili .then(). Jakmile je promise vyřešen, uložíme hodnotu do proměnné response.

Závěr

V tomto návodu jsme prozkoumali různé příklady použití Axios pro práci s REST API. Kódy ukazují vytváření HTTP požadavků a zpracování odpovědí.

Máte zájem dozvědět se více o JavaScriptu? Podívejte se na naše další průvodce pro začátečníky o různých konceptech a funkcích JavaScriptu, například na datum a čas, manipulaci s řetězci, třídy, a objekty.

Příjemné programování!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev je kreativní designér ve společnosti CloudSigma, který se zaměřuje na konzistentní firemní identitu prostřednictvím tradičních i inovativních marketingových kanálů. Je zdatný v propojování umělecké vize se strategickým marketingem za účelem vytváření působivých příběhů značky.

Komentáře

Zatím žádné komentáře. Buďte první.