როგორ გამოვიყენოთ FastAPI მაღალი წარმადობის API სერვისების შესაქმნელად

2/20/2026
4 min read

როგორ გამოვიყენოთ 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-ში და ეფექტურად გაზარდოთ თქვენი პროექტის განვითარების ეფექტურობა!

Published in Technology

You Might Also Like

როგორ გამოვიყენოთ ღრუბლოვანი კომპიუტერული ტექნოლოგიები: შექმენით თქვენი პირველი ღრუბლოვანი ინფრასტრუქტურის სრული სახელმძღვანელოTechnology

როგორ გამოვიყენოთ ღრუბლოვანი კომპიუტერული ტექნოლოგიები: შექმენით თქვენი პირველი ღრუბლოვანი ინფრასტრუქტურის სრული სახელმძღვანელო

[[HTMLPLACEHOLDER0]] [[HTMLPLACEHOLDER1]] [[HTMLPLACEHOLDER2]] [[HTMLPLACEHOLDER3]] [[HTMLPLACEHOLDER4]] [[HTMLPLACEHOLD...

გაფრთხილება! Claude Code-ის მამა პირდაპირ ამბობს: 1 თვის შემდეგ Plan Mode-ის გამოყენება აღარ იქნება საჭირო, პროგრამული ინჟინრების ტიტული გაქრებაTechnology

გაფრთხილება! Claude Code-ის მამა პირდაპირ ამბობს: 1 თვის შემდეგ Plan Mode-ის გამოყენება აღარ იქნება საჭირო, პროგრამული ინჟინრების ტიტული გაქრება

გაფრთხილება! Claude Code-ის მამა პირდაპირ ამბობს: 1 თვის შემდეგ Plan Mode-ის გამოყენება აღარ იქნება საჭირო, პროგრამული ი...

2026 წლის 10 საუკეთესო ღრმა სწავლების რესურსებიTechnology

2026 წლის 10 საუკეთესო ღრმა სწავლების რესურსები

2026 წლის 10 საუკეთესო ღრმა სწავლების რესურსები ღრმა სწავლების სწრაფი განვითარებით სხვადასხვა სფეროში, სულ უფრო მეტი სას...

2026 წლის 10 საუკეთესო AI აგენტი: ძირითადი მახასიათებლების ანალიზიTechnology

2026 წლის 10 საუკეთესო AI აგენტი: ძირითადი მახასიათებლების ანალიზი

2026 წლის 10 საუკეთესო AI აგენტი: ძირითადი მახასიათებლების ანალიზი შესავალი ხელოვნური ინტელიგენციის სწრაფი განვითარების ...

2026 წლის 10 საუკეთესო AI ინსტრუმენტი: ხელოვნური ინტელექტის რეალური პოტენციალის გათავისუფლებაTechnology

2026 წლის 10 საუკეთესო AI ინსტრუმენტი: ხელოვნური ინტელექტის რეალური პოტენციალის გათავისუფლება

2026 წლის 10 საუკეთესო AI ინსტრუმენტი: ხელოვნური ინტელექტის რეალური პოტენციალის გათავისუფლება დღეს ტექნოლოგიის სწრაფი გა...

2026 წლის საუკეთესო 10 AWS ინსტრუმენტი და რესურსიTechnology

2026 წლის საუკეთესო 10 AWS ინსტრუმენტი და რესურსი

2026 წლის საუკეთესო 10 AWS ინსტრუმენტი და რესურსი ბრიტანული სწრაფად განვითარებადი ღრუბლოვანი კომპიუტინგის სფეროში, Amazo...