FastAPI-мен жоғары өнімді API қызметін қалай құруға болады
FastAPI-мен жоғары өнімді API қызметін қалай құруға болады
FastAPI - бұл API құру үшін арнайы әзірленген заманауи, жылдам (тиімді) веб-фреймворк. Ол Python типтік нұсқауларына негізделген және асинхронды бағдарламалауды қолдайды, әзірлеушілерге жоғары өнімді, жоғары қолжетімділігі бар, кідірісі төмен API қызметтерін құруға мүмкіндік береді. Бұл мақалада біз FastAPI-ді пайдаланып жоғары өнімді API қызметін қалай құруды егжей-тегжейлі түсіндіреміз, біз кезең-кезеңімен түсіндіреміз, сізге орта құрудан бастап орналастыруға дейінгі процесті жүзеге асыруға көмектесеміз.
Бірінші қадам: Орта дайындау
Сіз өзіңіздің әзірлеу ортаңызда Python 3.6+ орнатылғанына көз жеткізуіңіз керек. Егер орнатылмаған болса, Python ресми сайтына кіріп, жүктеп алып, орнатыңыз.
FastAPI және Uvicorn орнату
FastAPI өзі қызмет көрсетпейді, ASGI сервері қажет. Мұнда біз Uvicorn-ды, жоғары өнімді ASGI серверін қолданамыз. FastAPI және Uvicorn орнату үшін келесі команданы пайдаланыңыз:
pip install fastapi uvicorn
Екінші қадам: Негізгі API құру
Келіңіздер, қарапайым FastAPI қосымшасын жасайық.
Қосымша файлын жасау
Сіздің жоба каталогыңызда main.py сияқты Python файлын жасаңыз, содан кейін оған келесі кодты жазыңыз:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"message": "Hello, World!"}
Жоғарыдағы кодта біз алдымен FastAPI-ді импорттап, app экземплярын жасадық. Содан кейін, біз GET маршрутын анықтадық, тамыр жолына / кіргенде қарапайым JSON жауап қайтарады.
Серверді іске қосу
Сіздің FastAPI серверіңізді келесі команданы пайдаланып іске қосыңыз:
uvicorn main:app --reload
main: файл атауын білдіреді, .py кеңейтусіз.app: FastAPI экземплярын білдіреді.--reload: әзірлеу режимінде, файл өзгергенде серверді автоматты түрде қайта іске қосу.
Үшінші қадам: Маршруттар мен деректер моделін анықтау
Күрделі API құру үшін сіз Pydantic-ті пайдаланып деректер моделін анықтауыңыз керек.
Деректер моделін жасау
main.py файлына келесі мазмұнды қосыңыз:
from pydantic import BaseModel
class Item(BaseModel):
name: str
price: float
is_available: bool = True
Бұл код Pydantic-ті пайдаланып Item деректер моделін жасайды, ол тауардың атауы, бағасы және қолжетімділігі туралы үш қасиетті қамтиды.
Жаңа маршрут қосу
Содан кейін, Item типіндегі деректерді қабылдайтын жаңа POST маршрутын анықтай аламыз:
@app.post("/items/")
async def create_item(item: Item):
return {"item_name": item.name, "item_price": item.price}
Бұл маршрутта FastAPI кіріс деректерін автоматты түрде тексереді және оларды Item моделіне сәйкестендіреді.
Төртінші қадам: Автоматты құжаттама жасау
FastAPI-дің ең үлкен артықшылықтарының бірі - API құжаттамасын автоматты түрде жасау мүмкіндігі. Сіз келесі мекен-жайға кіріп, оны көре аласыз:
- Swagger UI:
http://127.0.0.1:8000/docs - ReDoc:
http://127.0.0.1:8000/redoc
Бұл жасалған құжаттарда сіз API-ді интерактивті түрде тестілей аласыз, әр маршруттың сұраныс және жауап форматтарын көре аласыз.
Бесінші қадам: Аутентификация қосу
Нақты қолданбаларда аутентификация маңызды кезең болып табылады. Келіңіздер, рөлге негізделген қарапайым аутентификацияны қосайық.
Қауіпсіздік тәуелділіктерін қосу
FastAPI-дің Depends әдісін және OAuth2PasswordBearer-ді пайдаланып аутентификацияны жүзеге асырыңыз:
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
Маршруттарды қорғау
Содан кейін, сіз аутентификацияны қорғауды қажет ететін маршруттарға қосуға болады:
@app.get("/users/me")
async def read_users_me(current_user: dict = Depends(get_current_user)):
return current_user
Алтыншы қадам: FastAPI қосымшасын орналастыру
Сіз әзірлеуді аяқтағаннан кейін, қосымшаны бұлт серверіне орналастыруыңыз қажет болуы мүмкін. Docker-ды орналастыру үшін таңдауға болады.
Dockerfile жасау
Жоба каталогында Dockerfile деп аталатын файл жасаңыз, келесі мазмұнды енгізіңіз:
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.8
COPY ./app /app
Docker бейнесін құру
Сіздің терминалыңызда Docker бейнесін құру үшін келесі команданы пайдаланыңыз:
docker build -t myfastapiapp .
Docker контейнерін іске қосу
Сіздің FastAPI қосымшаңызды іске қосыңыз:
docker run -d --name fastapi -p 80:80 myfastapiapp
Қорытынды
Бұл мақалада біз FastAPI-ді пайдаланып жоғары өнімді API қызметін қалай құруды егжей-тегжейлі түсіндірдік, орта дайындаудан бастап, негізгі API құру, маршруттар мен деректер моделін анықтау, аутентификация қосу және орналастырудың толық процесіне дейін. FastAPI көптеген қуатты мүмкіндіктерді ұсынады, заманауи API құруды жеңіл әрі тиімді етеді, сіз ресми құжаттаманы пайдаланып, қосымша мүмкіндіктер мен ерекшеліктерді зерттей аласыз. Бұл мақала сізге FastAPI-мен тезірек танысуға және жобаның әзірлеу тиімділігін арттыруға көмектеседі деп үміттенеміз!





