FastAPI pradžios vadovas: geriausios praktikos kuriant didelio našumo API
FastAPI pradžios vadovas: geriausios praktikos kuriant didelio našumo API
Modernioje backend kūrimo srityje FastAPI pamažu išsiskiria kaip populiarus pasirinkimas kuriant didelio našumo API. Šiame vadove mes gilinsimės į FastAPI savybes, privalumus ir kaip greitai pradėti dirbti su juo, kad galėtumėte efektyviau kurti ir diegti API realiuose projektuose.
Kas yra FastAPI?
FastAPI yra moderni, greita (didelio našumo) web sistema, paremta standartiniais Python tipo nurodymais. Ji leidžia kūrėjams paprastai kurti greitus API, tuo pačiu užtikrinant efektyvų veikimą ir gerą priežiūrą. Pagrindinės savybės apima:
- Didelis našumas: pagrįsta Starlette (web daliai) ir Pydantic (duomenų daliai), našumas artimas Node.js ir Go.
- Automatinis dokumentų generavimas: per OpenAPI ir JSON Schema, FastAPI gali automatiškai generuoti interaktyvius API dokumentus.
- Lengva naudoti: naudojant Python tipo nurodymus, sumažinamos dažnos klaidos ir padidėja kūrėjų produktyvumas.
- Asinchroninio programavimo palaikymas: palaiko
asyncirawait, todėl apdorojant didelį užklausų skaičių, našumas yra geresnis.
FastAPI privalumai
FastAPI turi reikšmingų privalumų, palyginti su tradicinėmis sistemomis (tokios kaip Django ir Flask):
- Greitas kūrimas: dėl automatiškai generuojamų dokumentų ir tipo tikrinimo, kūrimo greitis žymiai padidėja.
- Efektyvus našumas: tinkamas didelio srauto programoms, ypač esant dideliam krūviui.
- Stiprus tipo palaikymas: per tipo nurodymus efektyviai sumažinamos vykdymo klaidos.
- Gera testavimo parama: priklausomybės injekcija ir jos užklausų modeliai palengvina testavimą ir derinimą.
Greitas pradėjimas su FastAPI
1. Aplinkos paruošimas
Pirmiausia įsitikinkite, kad turite įdiegtą Python 3.7 ar naujesnę versiją. Tada galite naudoti šią komandą, kad įdiegtumėte FastAPI ir ASGI serverį Uvicorn:
pip install fastapi uvicorn
2. Sukurkite pagrindinę FastAPI programą
Tada sukurkite paprastą FastAPI programą. Jūsų darbo kataloge sukurkite naują main.py failą, kurio turinys yra toks:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "query": q}
3. Paleiskite programą
Naudokite Uvicorn, kad paleistumėte FastAPI programą:
uvicorn main:app --reload
Naršyklėje apsilankykite http://127.0.0.1:8000, pamatysite {"Hello": "World"} atsakymą. Tuo pačiu metu apsilankius http://127.0.0.1:8000/items/1?q=test, bus grąžintas {"item_id": 1, "query": "test"}.
4. Automatinis dokumentų generavimas
FastAPI automatiškai generuoja dokumentus kiekvienam keliui, galite peržiūrėti interaktyvius dokumentus apsilankę šiuose URL:
- Swagger UI:
http://127.0.0.1:8000/docs - ReDoc:
http://127.0.0.1:8000/redoc
5. Duomenų modeliai ir tikrinimas
FastAPI taip pat palaiko duomenų modelių kūrimą per Pydantic, kad būtų galima patikrinti užklausų kūnus. Pavyzdžiui:
from pydantic import BaseModel
class Item(BaseModel):
name: str
price: float
is_available: bool = True
@app.post("/items/")
async def create_item(item: Item):
return item
Aukščiau pateiktame kodo fragmente apibrėžiamas Item duomenų modelis, FastAPI automatiškai patikrins gautus JSON duomenis.
6. Asinchroninis ir sinchroninis programavimas
FastAPI palaiko asinchroninį programavimą, galite naudoti async def apibrėžti asinchroninius maršruto funkcijas. Pavyzdžiui:
import asyncio
@app.get("/wait/")
async def wait_for_response():
await asyncio.sleep(1)
return {"message": "Waited for 1 second!"}
7. FastAPI programos diegimas
FastAPI programą galima diegti įvairiose aplinkose, įskaitant Docker, Kubernetes, debesų paslaugas ir kt. Paprastas pavyzdys, kaip diegti FastAPI naudojant Docker:
# Dockerfile
FROM python:3.9
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
Tada sukurkite Docker vaizdą ir paleiskite:
docker build -t myfastapiapp .
docker run -d -p 8000:8000 myfastapiapp
Galite apsilankyti http://localhost:8000, kad pamatytumėte savo programą.
Geriausios praktikos
- Naudokite tipo nurodymus: visada naudokite Python tipo nurodymus, kad pagerintumėte kodo skaitomumą ir priežiūrą.
- Parametrų tikrinimas: nustatykite tinkamus parametrų tikrinimus pagal verslo reikalavimus, kad užtikrintumėte, jog API perduodami duomenys yra galiojantys.
- Centralizuotas klaidų tvarkymas: apibrėžkite globalų klaidų tvarkymą, kad API galėtų tinkamai tvarkyti klaidas.
- Dokumentacija ir komentarai: nuolat atnaujinkite API dokumentaciją, naudodami komentarus ir dokumentus, kad užtikrintumėte kodo prieinamumą.
- Naudokite tarpininkus: protingai naudokite tarpininkus, kad užtikrintumėte kryžminio šaltinio dalijimąsi (CORS), autentifikaciją ir kt. funkcijas.
Išvada
FastAPI, kaip galingas įrankis kuriant modernius didelio našumo API, dėl savo efektyvumo ir paprastumo yra plačiai vertinamas kūrėjų. Nesvarbu, ar esate pradedantysis, ar patyręs kūrėjas, visi gali pasinaudoti jo privalumais. Realioje plėtroje, derinant geriausias praktikas, galite efektyviau kurti ir prižiūrėti projektus. Tikimės, kad šis vadovas suteiks jums gairių ir pagalbos jūsų FastAPI mokymosi kelionėje!





