როგორ გამოვიყენოთ 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 აპლიკაცია.
აპლიკაციის ფაილის შექმნა
თქვენი პროექტის დირექტორიაში შექმენით Python ფაილი, მაგალითად main.py, და შემდეგ დაწერეთ შემდეგი კოდი:
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, რომელიც შეიცავს სამი თვისებას: საქონლის სახელი, ფასი და ხელმისაწვდომობის სტატუსი.
ახალი მარშრუტის დამატება
შემდეგ, ჩვენ შეგვიძლია განსაზღვროთ ახალი POST მარშრუტი Item ტიპის მონაცემების მიღებისთვის:
@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-ში და ეფექტურად გაზარდოთ თქვენი პროექტის განვითარების ეფექტურობა!





