Paano Gumamit ng FastAPI para Bumuo ng Mataas na Pagganap na API Service
Paano Gumamit ng FastAPI para Bumuo ng Mataas na Pagganap na API Service
FastAPI ay isang modernong, mabilis (epektibo) na Web framework na dinisenyo para sa pagbuo ng API. Ito ay batay sa Python type hints at sumusuporta sa asynchronous programming, na nagpapahintulot sa mga developer na bumuo ng mataas na pagganap, mataas na availability na mababang latency na mga API service. Ang artikulong ito ay detalyadong magpapakita sa iyo kung paano gamitin ang FastAPI upang bumuo ng mataas na pagganap na API service, at kami ay magbibigay ng sunud-sunod na paliwanag upang matulungan kang makamit ang buong proseso mula sa paghahanda ng kapaligiran hanggang sa deployment.
Unang Hakbang: Paghahanda ng Kapaligiran
Kailangan mong tiyakin na ang iyong development environment ay may naka-install na Python 3.6+. Kung hindi pa ito naka-install, maaari mong bisitahin ang Python Official Website upang i-download at i-install.
I-install ang FastAPI at Uvicorn
Ang FastAPI mismo ay hindi nagbibigay ng serbisyo, kailangan nito ng isang ASGI server upang mag-host. Dito, gagamitin natin ang Uvicorn, isang mataas na pagganap na ASGI server. Maaari mong gamitin ang sumusunod na utos upang i-install ang FastAPI at Uvicorn:
pip install fastapi uvicorn
Ikalawang Hakbang: Bumuo ng Batayang API
Gumawa tayo ng isang simpleng FastAPI application.
Lumikha ng Application File
Sa iyong project directory, lumikha ng isang Python file, halimbawa main.py, at isulat ang sumusunod na code:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"message": "Hello, World!"}
Sa itaas na code, una naming inimport ang FastAPI at lumikha ng isang app instance. Pagkatapos, nagdefine kami ng isang GET route na nagbabalik ng isang simpleng JSON response kapag na-access ang root path /.
Simulan ang Server
Gamitin ang sumusunod na utos upang simulan ang iyong FastAPI server:
uvicorn main:app --reload
main: tumutukoy sa pangalan ng file, walang .py na suffix.app: tumutukoy sa FastAPI instance.--reload: sa development mode, awtomatikong nire-restart ang server kapag may pagbabago sa file.
Ikatlong Hakbang: Magdefine ng Routes at Data Models
Upang makabuo ng kumplikadong API, kailangan mong gumamit ng Pydantic upang magdefine ng data models.
Lumikha ng Data Model
Magdagdag ng sumusunod na nilalaman sa main.py:
from pydantic import BaseModel
class Item(BaseModel):
name: str
price: float
is_available: bool = True
Ang code na ito ay gumagamit ng Pydantic upang lumikha ng isang data model na Item, na naglalaman ng tatlong properties: pangalan ng produkto, presyo, at kung ito ay available.
Magdagdag ng Bagong Route
Susunod, maaari tayong magdefine ng isang bagong POST route upang tumanggap ng data na uri Item:
@app.post("/items/")
async def create_item(item: Item):
return {"item_name": item.name, "item_price": item.price}
Sa route na ito, awtomatikong ie-verify ng FastAPI ang mga ipinasok na data at i-map ito sa Item model.
Ikaapat na Hakbang: Awtomatikong Pagbuo ng Dokumentasyon
Isa sa mga pinakamalaking bentahe ng FastAPI ay ang kakayahang awtomatikong bumuo ng API documentation. Maaari mong tingnan ito sa pamamagitan ng pag-access sa mga sumusunod na address:
- Swagger UI:
http://127.0.0.1:8000/docs - ReDoc:
http://127.0.0.1:8000/redoc
Sa mga nabuo na dokumentasyong ito, maaari mong subukan ang API nang interactive, tingnan ang request at response format ng bawat route.
Ikalimang Hakbang: Magdagdag ng Authentication
Sa aktwal na aplikasyon, ang authentication ay isang mahalagang bahagi. Magdagdag tayo ng isang simpleng role-based authentication.
Magdagdag ng Security Dependencies
Gamitin ang Depends method ng FastAPI at OAuth2PasswordBearer upang ipatupad ang authentication:
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
Protektahan ang Routes
Pagkatapos, maaari mong idagdag ang authentication sa mga route na kailangang protektahan:
@app.get("/users/me")
async def read_users_me(current_user: dict = Depends(get_current_user)):
return current_user
Ikaanim na Hakbang: I-deploy ang FastAPI Application
Kapag natapos mo na ang development, maaaring kailanganin mong i-deploy ang application sa cloud server. Maaari mong piliing gumamit ng Docker para sa deployment.
Lumikha ng Dockerfile
Sa project directory, lumikha ng isang file na tinatawag na Dockerfile, at ilagay ang sumusunod na nilalaman:
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.8
COPY ./app /app
Bumuo ng Docker Image
Sa iyong terminal, gamitin ang sumusunod na utos upang bumuo ng Docker image:
docker build -t myfastapiapp .
Patakbuhin ang Docker Container
Patakbuhin ang iyong FastAPI application:
docker run -d --name fastapi -p 80:80 myfastapiapp
Buod
Sa artikulong ito, detalyado naming ipinaliwanag kung paano gamitin ang FastAPI upang bumuo ng mataas na pagganap na API service, mula sa paghahanda ng kapaligiran hanggang sa paglikha ng batayang API, pagdefine ng routes at data models, at pagkatapos ay pagdaragdag ng authentication at deployment. Nagbibigay ang FastAPI ng maraming makapangyarihang tampok, na ginagawang madali at epektibo ang pagbuo ng modernong API, maaari mong tuklasin ang higit pang mga tampok at katangian sa pamamagitan ng opisyal na dokumentasyon. Umaasa kami na ang artikulong ito ay makakatulong sa iyo na mas mabilis na makapagsimula sa FastAPI at epektibong mapabuti ang iyong proyekto sa pagbuo!





