Kako z uporabo FastAPI zgraditi visokozmogljivo API storitev

2/20/2026
4 min read

Kako z uporabo FastAPI zgraditi visokozmogljivo API storitev

FastAPI je sodoben, hiter (učinkovit) spletni okvir, zasnovan za gradnjo API-jev. Temelji na Pythonovih tipnih namigih in podpira asinhrono programiranje, kar razvijalcem omogoča gradnjo visokozmogljivih, visoko razpoložljivih API storitev z nizko zakasnitvijo. V tem članku vam bomo podrobno predstavili, kako z uporabo FastAPI zgraditi visokozmogljivo API storitev, razdelili bomo postopek na korake, da vam bomo pomagali pri celotnem procesu od priprave okolja do namestitve.

Prvi korak: Priprava okolja

Prepričati se morate, da imate v svojem razvojnem okolju nameščen Python 3.6 ali novejši. Če še niste namestili, lahko obiščete Python uradno stran in ga prenesete ter namestite.

Namestitev FastAPI in Uvicorn

FastAPI sam po sebi ne nudi storitve, potrebuje ASGI strežnik za gostovanje. Tukaj uporabljamo Uvicorn, visokozmogljiv ASGI strežnik. FastAPI in Uvicorn lahko namestite z naslednjim ukazom:

pip install fastapi uvicorn

Drugi korak: Gradnja osnovnega API

Ustvarimo preprosto FastAPI aplikacijo.

Ustvarite datoteko aplikacije

V svojem projektnem imeniku ustvarite Python datoteko, na primer main.py, in vanjo vpišite naslednjo kodo:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def read_root():
    return {"message": "Hello, World!"}

V zgornji kodi najprej uvozimo FastAPI in ustvarimo instanco app. Nato definiramo GET pot, ki ob obisku korenske poti / vrne preprosto JSON odziv.

Zagon strežnika

Za zagon vašega FastAPI strežnika uporabite naslednji ukaz:

uvicorn main:app --reload
  • main: se nanaša na ime datoteke, brez končnice .py.
  • app: se nanaša na instanco FastAPI.
  • --reload: v načinu razvoja se strežnik samodejno znova zažene ob spremembi datoteke.

Tretji korak: Določitev poti in podatkovnih modelov

Za vzpostavitev zapletenih API-jev morate uporabiti Pydantic za določitev podatkovnih modelov.

Ustvarite podatkovni model

V main.py dodajte naslednjo vsebino:

from pydantic import BaseModel

class Item(BaseModel):
    name: str
    price: float
    is_available: bool = True

Ta koda uporablja Pydantic za ustvarjanje podatkovnega modela Item, ki vsebuje tri lastnosti: ime izdelka, cena in razpoložljivost.

Dodajte nove poti

Nato lahko definiramo novo POST pot za sprejem podatkov tipa Item:

@app.post("/items/")
async def create_item(item: Item):
    return {"item_name": item.name, "item_price": item.price}

V tej poti FastAPI samodejno preveri prejet podatke in jih preslika v model Item.

Četrti korak: Samodejna generacija dokumentacije

Ena največjih prednosti FastAPI je, da lahko samodejno generira dokumentacijo API. Dokumentacijo si lahko ogledate na naslednjih naslovih:

  • Swagger UI: http://127.0.0.1:8000/docs
  • ReDoc: http://127.0.0.1:8000/redoc

V tej generirani dokumentaciji lahko interaktivno preizkusite API in si ogledate format zahtevkov in odgovorov za vsako pot.

Peti korak: Dodajanje overjanja

V praktičnih aplikacijah je overjanje pomemben korak. Dodajmo preprosto overjanje na osnovi vlog.

Dodajte varnostne odvisnosti

Uporabite FastAPI metodo Depends in OAuth2PasswordBearer za izvedbo overjanja:

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="Invalid authentication credentials")
    return user

Zaščitite poti

Nato lahko dodate overjanje na poti, ki jih želite zaščititi:

@app.get("/users/me")
async def read_users_me(current_user: dict = Depends(get_current_user)):
    return current_user

Šesti korak: Namestitev FastAPI aplikacije

Ko končate z razvojem, boste morda želeli aplikacijo namestiti na oblačni strežnik. Lahko se odločite za uporabo Dockerja za namestitev.

Ustvarite Dockerfile

V projektnem imeniku ustvarite datoteko z imenom Dockerfile in vnesite naslednjo vsebino:

FROM tiangolo/uvicorn-gunicorn-fastapi:python3.8

COPY ./app /app

Zgradite Docker sliko

V svojem terminalu uporabite naslednji ukaz za gradnjo Docker slike:

docker build -t myfastapiapp .

Zaženi Docker kontejner

Zaženi svojo FastAPI aplikacijo:

docker run -d --name fastapi -p 80:80 myfastapiapp

Povzetek

V tem članku smo podrobno razložili, kako z uporabo FastAPI zgraditi visokozmogljivo API storitev, od priprave okolja do ustvarjanja osnovnega API, določanja poti in podatkovnih modelov, pa vse do dodajanja overjanja in namestitve. FastAPI ponuja številne močne funkcije, ki omogočajo enostavno in učinkovito gradnjo sodobnih API-jev, dodatne funkcionalnosti in lastnosti pa lahko raziskujete v uradni dokumentaciji. Upamo, da vam bo ta članek pomagal hitreje obvladati FastAPI in učinkovito povečati vašo produktivnost pri razvoju projektov!

Published in Technology

You Might Also Like