Kuinka rakentaa korkean suorituskyvyn API-palvelu FastAPI:lla
Kuinka rakentaa korkean suorituskyvyn API-palvelu FastAPI:lla
FastAPI on moderni, nopea (tehokas) verkkokehys, joka on suunniteltu API:iden rakentamiseen. Se perustuu Pythonin tyyppivihjeisiin ja tukee asynkronista ohjelmointia, mikä mahdollistaa kehittäjien rakentaa korkean suorituskyvyn, korkeasti saatavilla olevia, alhaisen viiveen API-palveluja. Tässä artikkelissa käymme läpi, kuinka voit käyttää FastAPI:ta korkean suorituskyvyn API-palvelun rakentamiseen, ja jaamme prosessin vaiheittain, jotta voit toteuttaa ympäristön asennuksesta käyttöönottoon.
Ensimmäinen vaihe: Ympäristön valmistelu
Sinun on varmistettava, että kehitysympäristössäsi on asennettuna Python 3.6+. Jos et ole vielä asentanut, voit vierailla Pythonin virallisilla verkkosivuilla ladataksesi ja asentaaksesi sen.
Asenna FastAPI ja Uvicorn
FastAPI itsessään ei tarjoa palvelua, vaan se tarvitsee ASGI-palvelimen. Tässä käytämme Uvicornia, joka on korkean suorituskyvyn ASGI-palvelin. Voit asentaa FastAPI:n ja Uvicornin seuraavalla komennolla:
pip install fastapi uvicorn
Toinen vaihe: Perus API:n rakentaminen
Luodaan yksinkertainen FastAPI-sovellus.
Luo sovellustiedosto
Projektikansiossasi luo Python-tiedosto, kuten main.py, ja kirjoita siihen seuraava koodi:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"message": "Hello, World!"}
Yllä olevassa koodissa tuomme ensin FastAPI:n ja luomme app-instanssin. Sitten määrittelemme GET-reitin, joka palauttaa yksinkertaisen JSON-vastauksen juuripolkuun / päästessämme.
Käynnistä palvelin
Käynnistä FastAPI-palvelimesi seuraavalla komennolla:
uvicorn main:app --reload
main: viittaa tiedostonimeen ilman .py-päätettä.app: viittaa FastAPI-instanssiin.--reload: Kehitystilassa tiedostomuutosten yhteydessä palvelin käynnistyy automaattisesti uudelleen.
Kolmas vaihe: Reittien ja tietomallien määrittäminen
Rakentaaksesi monimutkaisempia API:ita, sinun on käytettävä Pydanticia tietomallien määrittämiseen.
Luo tietomalli
Lisää main.py-tiedostoon seuraava sisältö:
from pydantic import BaseModel
class Item(BaseModel):
name: str
price: float
is_available: bool = True
Tämä koodi käyttää Pydanticia luodakseen tietomallin Item, joka sisältää kolme ominaisuutta: tuotteen nimi, hinta ja saatavuus.
Lisää uusi reitti
Seuraavaksi voimme määrittää uuden POST-reitin vastaanottamaan Item-tyyppisiä tietoja:
@app.post("/items/")
async def create_item(item: Item):
return {"item_name": item.name, "item_price": item.price}
Tässä reitissä FastAPI validoi automaattisesti saapuvat tiedot ja kartoittaa ne Item-malliin.
Neljäs vaihe: Asiakirjojen automaattinen luonti
Yksi FastAPI:n suurimmista eduista on sen kyky luoda automaattisesti API-asiakirjoja. Voit tarkastella niitä vierailemalla seuraavissa osoitteissa:
- Swagger UI:
http://127.0.0.1:8000/docs - ReDoc:
http://127.0.0.1:8000/redoc
Näissä luoduissa asiakirjoissa voit testata API:ta interaktiivisesti ja tarkastella jokaisen reitin pyyntö- ja vastausmuotoja.
Viides vaihe: Lisää todennus
Käytännön sovelluksissa todennus on tärkeä vaihe. Lisätään yksinkertainen rooliin perustuva todennus.
Lisää turvallisuusriippuvuudet
Käytä FastAPI:n Depends-menetelmää ja OAuth2PasswordBearer:ia todennuksen toteuttamiseksi:
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
Suojaa reitit
Sitten voit lisätä todennuksen suojattaviin reitteihin:
@app.get("/users/me")
async def read_users_me(current_user: dict = Depends(get_current_user)):
return current_user
Kuudes vaihe: FastAPI-sovelluksen käyttöönotto
Kun olet valmis kehityksen kanssa, saatat haluta ottaa sovelluksen käyttöön pilvipalvelimella. Voit valita Dockerin käytön käyttöönotossa.
Luo Dockerfile
Luo projektikansioon tiedosto nimeltä Dockerfile ja kirjoita siihen seuraava sisältö:
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.8
COPY ./app /app
Rakenna Docker-kuva
Käytä terminaalissasi seuraavaa komentoa rakentaaksesi Docker-kuvan:
docker build -t myfastapiapp .
Suorita Docker-kontti
Suorita FastAPI-sovelluksesi:
docker run -d --name fastapi -p 80:80 myfastapiapp
Yhteenveto
Tässä artikkelissa olemme käyneet läpi, kuinka voit käyttää FastAPI:ta korkean suorituskyvyn API-palvelun rakentamiseen, ympäristön valmistelusta perus API:n luomiseen, reittien ja tietomallien määrittämiseen, todennuksen lisäämiseen ja käyttöönottoon. FastAPI tarjoaa monia tehokkaita ominaisuuksia, jotka tekevät modernien API:iden rakentamisesta yksinkertaista ja tehokasta. Voit tutustua virallisiin asiakirjoihin lisäominaisuuksien ja -ominaisuuksien tutkimiseksi. Toivottavasti tämä artikkeli auttaa sinua pääsemään nopeammin alkuun FastAPI:n kanssa ja parantamaan projektisi kehitystehokkuutta!





