Hogyan építsünk nagy teljesítményű API szolgáltatást FastAPI-val
Hogyan építsünk nagy teljesítményű API szolgáltatást FastAPI-val
A FastAPI egy modern, gyors (hatékony) webkeretrendszer, amelyet API-k építésére terveztek. A Python típusjelölésein alapul, és támogatja az aszinkron programozást, lehetővé téve a fejlesztők számára, hogy nagy teljesítményű, magas rendelkezésre állású, alacsony késleltetésű API szolgáltatásokat építsenek. Ez a cikk részletesen bemutatja, hogyan használhatja a FastAPI-t nagy teljesítményű API szolgáltatások építésére, lépésről lépésre haladva, hogy segítsen Önnek a környezet beállításától a telepítésig terjedő teljes folyamatban.
Első lépés: Környezet előkészítése
Győződjön meg arról, hogy a fejlesztési környezetében telepítve van a Python 3.6+. Ha még nincs telepítve, látogasson el a Python hivatalos weboldalára, ahol letöltheti és telepítheti.
FastAPI és Uvicorn telepítése
A FastAPI önállóan nem nyújt szolgáltatást, szüksége van egy ASGI szerverre a működtetéséhez. Itt az Uvicorn-t használjuk, amely egy nagy teljesítményű ASGI szerver. Az alábbi parancsokkal telepítheti a FastAPI-t és az Uvicorn-t:
pip install fastapi uvicorn
Második lépés: Alap API létrehozása
Hozzunk létre egy egyszerű FastAPI alkalmazást.
Alkalmazásfájl létrehozása
A projekt könyvtárában hozzon létre egy Python fájlt, például main.py, majd írja be a következő kódot:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"message": "Hello, World!"}
A fenti kódban először importáltuk a FastAPI-t, és létrehoztunk egy app példányt. Ezután definiáltunk egy GET útvonalat, amely a gyökér útvonalra (/) való látogatáskor egy egyszerű JSON választ ad vissza.
A szerver indítása
Indítsa el a FastAPI szerverét az alábbi parancs segítségével:
uvicorn main:app --reload
main: a fájl neve, .py kiterjesztés nélkül.app: a FastAPI példányra utal.--reload: fejlesztési módban a fájl módosításakor automatikusan újraindítja a szervert.
Harmadik lépés: Útvonalak és adatmodellek definiálása
A bonyolult API-k létrehozásához a Pydantic-ot kell használnia az adatmodellek definiálásához.
Adatmodell létrehozása
A main.py fájlhoz adja hozzá a következő tartalmat:
from pydantic import BaseModel
class Item(BaseModel):
name: str
price: float
is_available: bool = True
Ez a kód a Pydantic-ot használva létrehoz egy Item adatmodellt, amely három attribútumot tartalmaz: a termék nevét, árát és elérhetőségét.
Új útvonal hozzáadása
Ezután definiálhatunk egy új POST útvonalat, amely az Item típusú adatokat fogadja:
@app.post("/items/")
async def create_item(item: Item):
return {"item_name": item.name, "item_price": item.price}
Ebben az útvonalban a FastAPI automatikusan érvényesíti a bejövő adatokat, és azokat az Item modellhez rendeli.
Negyedik lépés: Dokumentáció automatikus generálása
A FastAPI egyik legnagyobb előnye, hogy automatikusan generál API dokumentációt. Az alábbi címeken tekintheti meg:
- Swagger UI:
http://127.0.0.1:8000/docs - ReDoc:
http://127.0.0.1:8000/redoc
Ezekben a generált dokumentumokban interaktívan tesztelheti az API-t, és megtekintheti minden egyes útvonal kérés- és válaszmintáit.
Ötödik lépés: Hitelesítés hozzáadása
A valós alkalmazásokban a hitelesítés fontos lépés. Adjunk hozzá egy egyszerű, szerepkör alapú hitelesítést.
Biztonsági függőségek hozzáadása
A FastAPI Depends metódusát és az OAuth2PasswordBearer-t használva valósíthatja meg a hitelesítést:
from fastapi import Depends, HTTPException, status
from fastapi.security import OAuth2PasswordBearer
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
async def fake_decode_token(token):
return {"sub": token}
async def get_current_user(token: str = Depends(oauth2_scheme)):
user = fake_decode_token(token)
if user is None:
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Érvénytelen hitelesítési adatok")
return user
Útvonalak védelme
Ezután a hitelesítést hozzáadhatja a védett útvonalakhoz:
@app.get("/users/me")
async def read_users_me(current_user: dict = Depends(get_current_user)):
return current_user
Hatodik lépés: FastAPI alkalmazás telepítése
Miután befejezte a fejlesztést, lehet, hogy az alkalmazást fel kell telepítenie egy felhőszerverre. Választhatja a Docker használatát a telepítéshez.
Dockerfile létrehozása
A projekt könyvtárában hozzon létre egy Dockerfile nevű fájlt, és írja be a következő tartalmat:
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.8
COPY ./app /app
Docker kép építése
A terminálban használja az alábbi parancsot a Docker kép építéséhez:
docker build -t myfastapiapp .
Docker konténer futtatása
Futtassa a FastAPI alkalmazását:
docker run -d --name fastapi -p 80:80 myfastapiapp
Összegzés
Ebben a cikkben részletesen bemutattuk, hogyan használhatja a FastAPI-t nagy teljesítményű API szolgáltatások építésére, a környezet előkészítésétől kezdve az alap API létrehozásán, az útvonalak és adatmodellek definiálásán át, egészen a hitelesítés hozzáadásáig és a telepítésig. A FastAPI számos erőteljes funkciót kínál, amelyek egyszerűvé és hatékonnyá teszik a modern API-k építését, és a hivatalos dokumentációban további funkciókat és jellemzőket fedezhet fel. Reméljük, hogy ez a cikk segít Önnek gyorsabban megismerkedni a FastAPI-val, és hatékonyan növelni a projektfejlesztési hatékonyságát!





