Як використовувати FastAPI для створення високопродуктивних API-сервісів

2/20/2026
4 min read

Як використовувати FastAPI для створення високопродуктивних API-сервісів

FastAPI — це сучасний, швидкий (ефективний) веб-фреймворк, спеціально розроблений для створення API. Він базується на типізації Python і підтримує асинхронне програмування, що дозволяє розробникам створювати високопродуктивні, високо доступні API-сервіси з низькою затримкою. У цій статті ми детально розглянемо, як використовувати FastAPI для створення високопродуктивних API-сервісів, ми будемо пояснювати поетапно, щоб допомогти вам реалізувати весь процес від налаштування середовища до розгортання.

Крок 1: Підготовка середовища

Вам потрібно переконатися, що у вашому середовищі розробки встановлено Python 3.6+. Якщо ви ще не встановили, ви можете відвідати офіційний сайт Python для завантаження та встановлення.

Встановлення FastAPI та Uvicorn

FastAPI сам по собі не надає сервіс, йому потрібен ASGI-сервер для роботи. Тут ми використовуємо Uvicorn, високопродуктивний ASGI-сервер. Ви можете встановити FastAPI та Uvicorn за допомогою наступної команди:

pip install fastapi uvicorn

Крок 2: Створення базового 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: у режимі розробки сервер автоматично перезапускається при зміні файлів.

Крок 3: Визначення маршрутів та моделей даних

Щоб створити складні 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.

Крок 4: Автоматичне генерування документації

Однією з найбільших переваг FastAPI є можливість автоматично генерувати документацію API. Ви можете переглянути її, відвідавши наступні адреси:

  • Swagger UI: http://127.0.0.1:8000/docs
  • ReDoc: http://127.0.0.1:8000/redoc

У цих згенерованих документах ви можете інтерактивно тестувати API, переглядати формат запитів та відповідей для кожного маршруту.

Крок 5: Додавання автентифікації

У реальних застосунках автентифікація є важливим етапом. Давайте додамо просту автентифікацію на основі ролей.

Додавання залежностей безпеки

Використовуйте метод Depends FastAPI та 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

Крок 6: Розгортання додатку 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

Claude Code Buddy зміни: як отримати блискучого легендарного улюбленця

Claude Code Buddy зміни: як отримати блискучого легендарного улюбленця 1 квітня 2026 року, Anthropic тихо запустила функ...

Obsidian випустив Defuddle, піднявши Obsidian Web Clipper на новий рівеньTechnology

Obsidian випустив Defuddle, піднявши Obsidian Web Clipper на новий рівень

Obsidian випустив Defuddle, піднявши Obsidian Web Clipper на новий рівень Я завжди любив основну ідею Obsidian: локальн...

OpenAI раптово оголосила про "три в одному": об'єднання браузера, програмування та ChatGPT, внутрішнє визнання помилок минулого рокуTechnology

OpenAI раптово оголосила про "три в одному": об'єднання браузера, програмування та ChatGPT, внутрішнє визнання помилок минулого року

OpenAI раптово оголосила про "три в одному": об'єднання браузера, програмування та ChatGPT, внутрішнє визнання помилок м...

2026, більше не змушуйте себе "дисциплінуватися"! Зробіть ці 8 простих справ, і здоров'я прийде природноHealth

2026, більше не змушуйте себе "дисциплінуватися"! Зробіть ці 8 простих справ, і здоров'я прийде природно

2026, більше не змушуйте себе "дисциплінуватися"! Зробіть ці 8 простих справ, і здоров'я прийде природно Новий рік почи...

Ті мами, які намагаються схуднути, але не можуть, безумовно, потрапляють сюдиHealth

Ті мами, які намагаються схуднути, але не можуть, безумовно, потрапляють сюди

Ті мами, які намагаються схуднути, але не можуть, безумовно, потрапляють сюди Травень вже минув, як ваш план схуднення?...

📝
Technology

AI Browser 24 години стабільної роботи: посібник

AI Browser 24 години стабільної роботи: посібник Цей посібник описує, як налаштувати стабільне, тривале середовище для A...