React: F1 adatok lekérése api-val

React Web

A feladathoz az https://ergast.com/mrd/ weboldal publikus api-jait fogjuk használni. A weboldalon megtalálható az összes futam adata, 1950-2024-ig.

Előzmény: megnéztük korábban, hogy js segítségével hogyan lehet lekérdezni és megjeleníteni adatokat api segítségével. Ebben a reactos példában ugyanezt fogjuk megoldani.

Készítsünk egy új react alkalmazást! (create vite@latest … korábbi tutorialban benne volt! Plussz a routingot is telepíteni kell: npm install react-router-dom)

Az adott év futamainak adatait a Home.jsx -ben található Home komponens fogja megjeleníteni, a konkrét futam eredményeit pedig Results.jsx -ben található Results komponens. Természetesen lehetett volna akár egy fájlba is írni, de így legalább a routingot is gyakoroljuk.

A Main.jsx tartalmán nem szükséges változtatni.

Az App.jsx -be importáljuk a Home és a Results tartalmát. Az App.jsx-ben adjuk meg a hivatkozásokat, a BrowserRouter segítségével. A Results komponens elérési útja /results lesz, a Home komponens elérési útvonala pedig a /, azaz a gyökér.

Home.jsx Nézzük meg az adott év futamainak lekérdezését, és megjelenítését! Nézzünk bele az api által visszaadott json-ba!

Az api-ban megadjuk a csúszkán kiválasztott évszámot.
https://ergast.com/api/f1/${season}.json
Ha másik évszámot választunk, akkor frissülni fognak azonnal az adatok. A futamok dátumaiból készítünk hivatkozást, amire kattintva az adott futam eredményeit fogjuk megjeleníteni. Korábban megnéztük a react hivatkozások használatát. Importálni kell a Link osztályt, és látrehozni a hivatkozásokat a results komponensre! Hasonlóan a sima js weboldalhoz, itt is elküldjük az évet, és a szezon sorszámát. Az App.jsx-ben megadott routing alapján a Results komponens elérési útja: /results utána pedig hozzáadjuk a paramétereket, évszámot és a futam sorszámát.
<Link to={/results/${race.season}/${race.round}}>

A futamok eredményét a https://ergast.com/api/f1/2000/1/results.json api címen érjük el. Nézzük meg, mit ad vissza! Ebből a json-ból fogjuk kiszedni a pilóták, istállók adatait.

Results.jsx A Results komponens felelős a futamon elért eredmények lekérdezéséért, és megjelenítéséért. Az évszámot és a futam sorszámát a hivatkozásból kapja meg, paraméterként. Gyakorlatilag ugyanúgy működik, mint a sima js weboldalon.