Kaip naudoti FastAPI kuriant didelio našumo API paslaugas
Kaip naudoti FastAPI kuriant didelio našumo API paslaugas
FastAPI yra moderni, greita (efektyvi) interneto sistema, sukurta API kūrimui. Ji remiasi Python tipo užuominomis ir palaiko asinchroninį programavimą, leidžiančią kūrėjams kurti didelio našumo, didelio prieinamumo ir mažo delsimo API paslaugas. Šiame straipsnyje išsamiai paaiškinsime, kaip naudoti FastAPI kuriant didelio našumo API paslaugas, mes žingsnis po žingsnio paaiškinsime, kaip įgyvendinti visą procesą nuo aplinkos paruošimo iki diegimo.
Pirmas žingsnis: Aplinkos paruošimas
Turite užtikrinti, kad jūsų kūrimo aplinkoje būtų įdiegta Python 3.6+. Jei dar nesate įdiegę, galite apsilankyti Python oficialioje svetainėje ir atsisiųsti bei įdiegti.
Įdiekite FastAPI ir Uvicorn
FastAPI pati nesuteikia paslaugų, jai reikia ASGI serverio, kad galėtų veikti. Čia mes naudojame Uvicorn, didelio našumo ASGI serverį. Galite naudoti šią komandą, kad įdiegtumėte FastAPI ir Uvicorn:
pip install fastapi uvicorn
Antras žingsnis: Pagrindinio API kūrimas
Sukurkime paprastą FastAPI programą.
Sukurkite programos failą
Jūsų projekto kataloge sukurkite Python failą, pavyzdžiui, main.py, ir jame parašykite šį kodą:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"message": "Hello, World!"}
Šiame kode pirmiausia importuojame FastAPI ir sukuriame app egzempliorių. Tada apibrėžiame GET maršrutą, kuris, pasiekus šaknies kelią /, grąžina paprastą JSON atsakymą.
Paleiskite serverį
Paleiskite savo FastAPI serverį naudodami šią komandą:
uvicorn main:app --reload
main: nurodo failo pavadinimą, be .py priedo.app: nurodo FastAPI egzempliorių.--reload: kūrimo režimu, failo pakeitimai automatiškai perkrauna serverį.
Trečias žingsnis: Maršrutų ir duomenų modelių apibrėžimas
Norint sukurti sudėtingą API, reikia naudoti Pydantic duomenų modeliams apibrėžti.
Sukurkite duomenų modelį
Pridėkite šį turinį į main.py:
from pydantic import BaseModel
class Item(BaseModel):
name: str
price: float
is_available: bool = True
Šis kodas naudoja Pydantic, kad sukurtų duomenų modelį Item, kuris apima tris savybes: prekės pavadinimą, kainą ir ar ji yra prieinama.
Pridėkite naują maršrutą
Tada galime apibrėžti naują POST maršrutą, kad priimtume Item tipo duomenis:
@app.post("/items/")
async def create_item(item: Item):
return {"item_name": item.name, "item_price": item.price}
Šiame maršrute FastAPI automatiškai patikrina gautus duomenis ir žemėlapius juos į Item modelį.
Ketvirtas žingsnis: Automatinis dokumentų generavimas
Vienas didžiausių FastAPI privalumų yra tai, kad jis gali automatiškai generuoti API dokumentus. Galite peržiūrėti juos apsilankę šiuose adresuose:
- Swagger UI:
http://127.0.0.1:8000/docs - ReDoc:
http://127.0.0.1:8000/redoc
Šiuose sugeneruotuose dokumentuose galite interaktyviai išbandyti API, peržiūrėti kiekvieno maršruto užklausų ir atsakymų formatus.
Penktas žingsnis: Pridėti autentifikaciją
Praktiniuose taikymuose autentifikacija yra svarbus etapas. Pridėkime paprastą autentifikaciją, pagrįstą rolėmis.
Pridėkite saugos priklausomybę
Naudokite FastAPI Depends metodą ir OAuth2PasswordBearer, kad įgyvendintumėte autentifikaciją:
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
Apsaugokite maršrutus
Tada galite pridėti autentifikaciją prie maršrutų, kuriuos reikia apsaugoti:
@app.get("/users/me")
async def read_users_me(current_user: dict = Depends(get_current_user)):
return current_user
Šeštas žingsnis: FastAPI programos diegimas
Kai baigsite kūrimą, gali tekti diegti programą debesų serveryje. Galite pasirinkti diegti naudojant Docker.
Sukurkite Dockerfile
Projekto kataloge sukurkite failą pavadinimu Dockerfile ir įveskite šį turinį:
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.8
COPY ./app /app
Sukurkite Docker vaizdą
Savo terminale naudokite šią komandą, kad sukurtumėte Docker vaizdą:
docker build -t myfastapiapp .
Paleiskite Docker konteinerį
Paleiskite savo FastAPI programą:
docker run -d --name fastapi -p 80:80 myfastapiapp
Santrauka
Šiame straipsnyje išsamiai paaiškinome, kaip naudoti FastAPI kuriant didelio našumo API paslaugas, nuo aplinkos paruošimo iki pagrindinio API kūrimo, maršrutų ir duomenų modelių apibrėžimo, taip pat autentifikacijos pridėjimo ir diegimo. FastAPI siūlo daugybę galingų funkcijų, todėl modernių API kūrimas tampa paprastas ir efektyvus, galite toliau tyrinėti daugiau funkcijų ir savybių oficialioje dokumentacijoje. Tikimės, kad šis straipsnis padės jums greičiau pradėti dirbti su FastAPI ir efektyviau didinti jūsų projektų kūrimo efektyvumą!





