Kuidas kasutada FastAPI-d kõrge jõudlusega API teenuste loomiseks
Kuidas kasutada FastAPI-d kõrge jõudlusega API teenuste loomiseks
FastAPI on kaasaegne, kiire (efektiivne) veebiraamistik, mis on loodud API-de loomiseks. See põhineb Python'i tüübi vihjetel ja toetab asünkroonset programmeerimist, võimaldades arendajatel luua kõrge jõudlusega, kõrge kättesaadavusega ja madala latentsusega API teenuseid. Käesolev artikkel tutvustab teile üksikasjalikult, kuidas kasutada FastAPI-d kõrge jõudlusega API teenuste loomiseks, jagades protsessi samm-sammult, et aidata teil saavutada keskkonna seadistamisest kuni juurutamiseni kogu protsess.
Esimene samm: Keskkonna ettevalmistamine
Te peate veenduma, et teie arenduskeskkonnas on installitud Python 3.6+. Kui see pole veel installitud, külastage Python'i ametlikku veebisaiti ja laadige alla ning installige.
FastAPI ja Uvicorni installimine
FastAPI ei paku teenust iseenesest, vajate ASGI serverit selle majutamiseks. Siin kasutame Uvicorni, mis on kõrge jõudlusega ASGI server. FastAPI ja Uvicorni installimiseks saate kasutada järgmist käsku:
pip install fastapi uvicorn
Teine samm: Põhi API loomine
Loome lihtsa FastAPI rakenduse.
Rakenduse faili loomine
Teie projekti kataloogis looge Python'i fail, näiteks main.py, ja kirjutage sinna järgmine kood:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"message": "Hello, World!"}
Ülaltoodud koodis impordime esmalt FastAPI ja loome app instantsi. Seejärel määratleme GET marsruudi, mis tagastab juurtee / külastamisel lihtsa JSON vastuse.
Serveri käivitamine
Käivitage oma FastAPI server järgmise käsuga:
uvicorn main:app --reload
main: viitab faili nimele, ilma .py laiendita.app: viitab FastAPI instantsile.--reload: arendusrežiimis, server taaskäivitub automaatselt, kui failidesse tehakse muudatusi.
Kolmas samm: Marsruutide ja andmemudelite määratlemine
Kuna soovite luua keerukamaid API-sid, peate kasutama Pydanticut andmemudelite määratlemiseks.
Andmemudeli loomine
Lisage main.py faili järgmine sisu:
from pydantic import BaseModel
class Item(BaseModel):
name: str
price: float
is_available: bool = True
See kood kasutab Pydanticut andmemudeli Item loomiseks, mis sisaldab kolme omadust: toote nimi, hind ja saadavus.
Uue marsruudi lisamine
Seejärel saame määratleda uue POST marsruudi, et vastu võtta Item tüüpi andmeid:
@app.post("/items/")
async def create_item(item: Item):
return {"item_name": item.name, "item_price": item.price}
Selles marsruudis valideerib FastAPI automaatselt sisenevaid andmeid ja kaardistab need Item mudelisse.
Neljandat samm: Dokumentide automaatne genereerimine
FastAPI üks suurimaid eeliseid on automaatne API dokumentide genereerimine. Saate neid vaadata, külastades järgmisi aadresse:
- Swagger UI:
http://127.0.0.1:8000/docs - ReDoc:
http://127.0.0.1:8000/redoc
Neis genereeritud dokumentides saate interaktiivselt testida API-d, vaadata iga marsruudi päringute ja vastuste formaate.
Viies samm: Autentimise lisamine
Reaalsetes rakendustes on autentimine oluline etapp. Lisame lihtsa rollipõhise autentimise.
Turvadependentside lisamine
Kasutades FastAPI Depends meetodit ja OAuth2PasswordBearer, et rakendada autentimist:
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
Marsruutide kaitsmine
Seejärel saate autentimise lisada marsruutidesse, mida soovite kaitsta:
@app.get("/users/me")
async def read_users_me(current_user: dict = Depends(get_current_user)):
return current_user
Kuues samm: FastAPI rakenduse juurutamine
Kui olete arenduse lõpetanud, peate võib-olla rakenduse juurutama pilveserverisse. Saate valida Docker'i kasutamise juurutamiseks.
Dockerfile'i loomine
Looge projekti kataloogis fail nimega Dockerfile ja sisestage järgmine sisu:
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.8
COPY ./app /app
Docker'i pildi ehitamine
Kasutage oma terminalis järgmisi käske Docker'i pildi ehitamiseks:
docker build -t myfastapiapp .
Docker'i konteineri käitamine
Käivitage oma FastAPI rakendus:
docker run -d --name fastapi -p 80:80 myfastapiapp
Kokkuvõte
Käesolevas artiklis oleme üksikasjalikult käsitlenud, kuidas kasutada FastAPI-d kõrge jõudlusega API teenuste loomiseks, alates keskkonna ettevalmistamisest kuni põhiteenuse loomise, marsruutide ja andmemudelite määratlemise, autentimise lisamise ja juurutamiseni. FastAPI pakub palju võimsaid funktsioone, mis muudavad kaasaegsete API-de loomise lihtsaks ja tõhusaks. Saate ametlikest dokumentidest uurida rohkem funktsioone ja omadusi. Loodame, et see artikkel aitab teil kiiremini FastAPI-d omandada ja tõhusalt suurendada teie projekti arenduse efektiivsust!





