A FastAPI magyarázata 5 perc vagy kevesebb

A FastAPI, egy Python-keretrendszer, amely lehetővé teszi webes API-k fejlesztését, népszerűvé vált az elmúlt néhány évben.

Az API (Application Programming Interface) a modern architektúra alapja. Lehetővé teszik az alkalmazások modularizálását és szétválasztását. Ez lehetővé teszi az alkalmazások gyors létrehozását és egyszerűvé teszi azok karbantartását.

Ezért érdemes megtanulni a FastAPI-t, ha a Python használatát tervezi webalkalmazások fejlesztésére. Ez a cikk mindent megtanít a FastAPI alapjairól.

Mi az a FastAPI?

A FastAPI egy Python-alapú webes keretrendszer. Az elmúlt években nagy figyelmet keltett. Fejlesztési felépítése hasonló a Flaskhoz, amely a Python webfejlesztést elsajátítani vágyók körében volt a legnépszerűbb választás.

A FastAPI egyszerűen használható, dokumentációja világos és könnyen követhető. A FastAPI-t olyan technológiai óriások használják, mint a Microsoft, a Netflix és az Uber.

A FastAPI rendelkezik minden olyan funkcióval, amely egy API-készítőtől elvárható, de nem korlátozódik ezekre. Használhatja visszafelé WSGI csatlakoztatására, amiről a legtöbb felhasználó nem tud.

A FastAPI elsődleges célja API-végpontok létrehozása, ahogy a neve is sugallja. Ez ugyanolyan hatékonyan elvégezhető, mint a Python-szótár adatainak visszaküldése JSON-ban vagy az OpenAPI interaktív Swagger felhasználói felületének használata.

A FastAPI nem korlátozza magát az API-kra. Szinte mindenre használható, amit egy webes keretrendszer csinál, a weboldalak Jinja2 sablonmotorral történő kézbesítésétől a WebSockets-alapú alkalmazások kiszolgálásáig.

Az alábbiakban bemutatjuk a FastAPI előnyeit:

  • A FastAPI lehetővé teszi a fejlesztő adattípusának ellenőrzését, még akkor is, ha beágyazott JSON-lekérdezéseket használ.
  • Az automatikus kiegészítés funkcióval rövidebb idő alatt és kevesebb erőfeszítést igényel az alkalmazások létrehozása.
  • Kompatibilis az OpenAPI és a JSON-séma szókinccsel, amely lehetővé teszi a JSON-dokumentumok érvényesítését és megjegyzéseit.
  • A FastAPI lehetővé teszi a GraphQL API gyors felépítését a graphene–python nevű Python-könyvtár használatával.
  • A FastAPI kompatibilis az OAuth 2.0-val, valamint a külső szolgáltatókkal.

Az alábbiakban felsoroljuk a FastAPI hátrányait:

  • A FastAPI még mindig új keretrendszer, így kevés az irányadó közösség. Nem rendelkezik elegendő külső oktatási információval, például könyvekkel, tanfolyamokkal vagy oktatóanyagokkal.
  • Mivel a FastAPI-ban minden összetevőt össze kell kötnünk, a fő fájl nagyon nagy vagy zsúfolt lehet.
  14 legjobb megvásárolható Google Stadia-kontroller

A FastAPI egyedi jellemzői

Ezek azok az egyedi funkciók, amelyek a FastAPI-t a mai napig a legnépszerűbb Python webes keretrendszerré teszik.

  • Nagy teljesítmény: A FastAPI nagyobb teljesítményű, mint a többi Python-keretrendszer. A FastAPI sebességorientált keretrendszere kiváló választássá teszi. Minden a nagyobb sebességre és jobb teljesítményre vezethető vissza a Starlette funkciók kihasználásával, API-k létrehozásával és kész kódok előállításával.
  • Gyorsan kódolható: A fejlesztőknek nem kell semmi újat létrehozniuk a gyártásra kész kódokkal. Ez hozzávetőleg 200-30%-kal felgyorsítja a folyamatot. A FastAPI Starlette-en fut, és számos további funkcióval rendelkezik, amelyek segítségével API-kat lehet létrehozni az adatok ellenőrzéséhez és sorosításához. A keretrendszer már tartalmazza az összes szükséges összetevőt, csökkentve a kódoláshoz szükséges időt.
  • Minimális hibák: A keretrendszer rendelkezik egy automatikus kiegészítési funkcióval, amely automatikusan beilleszti a kód nagy részét a darabba. Ez minimálisra csökkenti a hibák lehetőségét és javítja a kimeneti minőséget.
  • Könnyen érthető: A FastAPI nem csinál semmit, csak a Modern Python. Ez a Python 3.6 módosított változata, és nem tartalmaz új szintaxist. A keretrendszert bárki használhatja, aki jól érti a nyelvet.
  • Minimális erőfeszítés: A FastAPI automatikusan generálja az OpenAPI dokumentációt a fejlesztő minimális erőfeszítésével. Ez az információ az alkalmazás/doc könyvtárban található. A dokumentáció részletes információkat tartalmaz az API-végpontokról, a visszatérési kódokról, a válaszparaméterekről és egyéb részletekről.
  • Szerkesztői támogatás: A keretrendszer minden összetevője az automatikus kiegészítést szem előtt tartva készült. Ez egyszerű, lehetővé téve a fejlesztőknek, hogy kész kódot állítsanak elő. A kódot közvetlenül a böngészőből is tesztelheti az interaktív dokumentációval.
  • Nyílt szabványok: A FastAPI Python webes keretrendszere óriási előny. A keretrendszer kompatibilis a korábban Swagger néven ismert OpenAPI-val, amely lehetővé teszi API-k létrehozását.

FastAPI telepítés

Íme az egyszerű lépések a FastAPI telepítéséhez Linux vagy Windows rendszeren.

#1. FastAPI telepítés Linuxra

Telepítse a Python 3-at Linuxra az alábbi paranccsal:

sudo apt install python3

Telepítse a pip-t Linuxra az alábbi paranccsal:

sudo apt install python3-pip

Ezután telepítse a FastAPI-t Linuxra.

pip install fastapi

Szüksége lesz egy ASGI szerverre is. Tehát telepítse az uvicornt a pip segítségével.

pip install "uvicorn[standard]"

#2. FastAPI telepítés Windows rendszeren

Telepítse a Python 3-at Windows rendszeren a Microsoft Store használatával. Ezzel a pip-t is telepíti.

Ezután telepítse a FastAPI-t a Windows rendszeren.

pip install fastapi

Végül telepítse az ASGI szerver uvicorn-t.

pip install "uvicorn[standard]"

A FastAPI új korbeli felhasználásai

Íme néhány új FastAPI használat:

  Sorok és oszlopok hozzáadása vagy eltávolítása a Google Táblázatokban

Automatizált dokumentumok

Az API-típusok és végpontok dokumentációja kötelező. Ezt a problémát OpenAPI, Swagger UI és ReDoc segítségével lehet megoldani. Ezek automatikusan be vannak csomagolva a FastAPI-val. Ez lehetővé teszi, hogy a kódra koncentráljon, és ne állítson be eszközöket.

Beírta Python

A FastAPI Python 3.6 típusú deklarációkat használ (a Pydanticnak köszönhetően). Ez azt jelenti, hogy Python szolgáltatást használ, amely lehetővé teszi a változó típusának és típusának megadását. Ez a keretrendszer remekül kihasználja, kiváló szerkesztői támogatást nyújtva. Az automatikus kiegészítés elképesztően működik.

Érvényesítés

A Pydantic már integrálja az érvényesítést ebbe a keretrendszerbe. A szabványos Python típusok és az egyéni mezők érvényesítése elvégezhető.

Biztonság és hitelesítés

Ez minden API fontos része. Gyakran csak megismételjük a kódot, miért ne építhetnénk be egy részét a keretrendszerünkbe? A FastAPI pontosan ezt teszi.

A könyvtár támogatja a HTTP Basic, az OAuth2 tokeneket (JWT token) és a fejléc API kulcsokat.

Aszinkron természet

A FastAPI alapértelmezés szerint támogatja az aszinkron végpontokat, így egyszerűbb és hatékonyabb a kód. Ez jelentős előny a Flask-hoz képest.

FastAPI vs. Flask: legfontosabb különbségek

Használati különbségek

Elérhető a FastAPI, egy full-stack platform, amely mindent megad, amire szüksége van az API felépítéséhez. A Flask viszont egy mikro keretrendszer, és nem kínálja ugyanazokat a funkciókat, mint a FastAPI. A Flask hasznos lehet, ha egy ötlet prototípusát kell elkészítenie, vagy gyorsan létre kell hoznia egy egyszerű webalkalmazást.

A Flask és a FastAPI használatuk nagyon különbözik egymástól. A Flask keretrendszer új ötletek és alkalmazások prototípusára, míg a FastAPI keretrendszer API-k építésére használható. Gyorsan létrehozhat háttérkiszolgálót a kódolási ismeretek nélkül.

Kisméretű weboldalak és webes alkalmazások

A FastAPI egyszerűen használható, könnyű, és kis léptékű web- és alkalmazásfejlesztéshez is használható. Tartalmaz egy objektum-relációs réteget (ORM), amely az alkalmazáson belüli adatobjektumokat kezeli, így kódolással gyorsan elérheti azokat.

Az ORM réteg nyomon követi adatbázisait, és lehetővé teszi, hogy elfelejtse azokat manuálisan frissíteni, amikor új információkat adnak hozzá, módosítanak vagy törölnek a webhelyről vagy alkalmazásról.

WSGI vs. ASGI

Lehet, hogy észrevett egy alapvető különbséget: a Flask a WSGI-t használja szabványos felületéhez, míg a FastAPI az ASGI-t. Mint korábban említettük, a WSGI szinkronban dolgozza fel a kéréseket. A kérelmek feldolgozása egymás után történik. Addig nem lehet elkezdeni, amíg az utolsó feladatot be nem fejezték.

  Új funkciók a Firefox 32-ben asztali számítógépre és Androidra

Az ASGI aszinkron módon kezeli a kéréseket. Ez lehetővé teszi, hogy a feladatokat saját tempójukban hajtsák végre, és nem kell másokra várniuk.

Közösség

A másik különbség a közösség. A Flask egy közösség, amely már régebb óta létezik, mint a FastAPI. Ez nagyszerű dokumentációt és külső segítséget jelent másoktól, akik a Flaskról írnak.

A FastAPI még mindig új projekt, így a közösségnek még nem kell ennyire növekednie. Ez azt jelenti, hogy bár elegendő dokumentáció áll rendelkezésre, nincs sok külső segítség.

Az alábbiakban összefoglaló táblázatok találhatók a FastAPI és Flask között:

FastAPIFlaskAz adatellenőrzés be van építve.Nem rendelkezik adatellenőrzéssel.Az aszinkron feladattámogatás elérhetőAszinkron feladattámogatás nem elérhető Az ASGI-specifikációk megvalósítása Támogatja a WSGI-alkalmazásokat Automatikus dokumentumtámogatás Manuális dokumentumtámogatás A hibaüzenet JSON formátumban jelenik meg.

FastAPI vagy Flask: melyiket válassza?

A FastAPI és a Flask gyorsan beállíthatja a Python webszervereket és adattudományi alkalmazásokat. Mindkettő ugyanolyan erőfeszítést igényel a telepítéshez, de melyik keretrendszer a legjobb a következő projekthez?

A FastAPI a legjobb megoldás, ha a sebesség és a teljesítmény a legfontosabb. Ez a keretrendszer akkor a legjobb, ha CDN-t épít, és jelentős forgalomra számít. A FastAPI lehetővé teszi a keretrendszer letöltését és azonnali használatát. A projektsablon időt takarít meg, és időt takarít meg.

A FastAPI jobb megoldás, mint a Flask, amikor API-kat készít. Ez különösen igaz, ha figyelembe vesszük a mikroszolgáltatásokat és egyéb szempontokat. A Flask a legjobb választás, ha már sok eszközzel rendelkezik erre a keretre.

Következtetés

Tehát ennyi volt a FastAPI-ról. A FastAPI kiváló sebességet és teljesítményt kínál. Ez a keretrendszer a legjobb, ha tartalomszolgáltató hálózatát építi, és forgalomra számít. A FastAPI innovatív keretrendszere és projektsablonja időt takarít meg.

A Flask jobb lehet API-k, különösen mikroszolgáltatások létrehozására. A FastAPI is jobb, mint a Flask. A lombik jobb választás, ha már széles körben használja.

Néhány népszerű Python-keretrendszert is felfedezhet az API létrehozásához.