Як використовувати 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 прямо заявляє: через місяць без Plan Mode титул програміста зникнеTechnology

Попередження! Батько Claude Code прямо заявляє: через місяць без Plan Mode титул програміста зникне

Попередження! Батько Claude Code прямо заявляє: через місяць без Plan Mode титул програміста зникне Нещодавно в YC відб...

2026年 Top 10 深度学习资源推荐Technology

2026年 Top 10 深度学习资源推荐

2026年 Top 10 深度学习资源推荐 随着深度学习在各个领域的迅速发展,越来越多的学习资源和工具涌现出来。本文将为您推荐2026年最值得关注的十个深度学习资源,帮助您在这一领域中快速成长。 1. Coursera Deep Learn...

2026 рік Топ 10 AI агентів: аналіз основних перевагTechnology

2026 рік Топ 10 AI агентів: аналіз основних переваг

2026 рік Топ 10 AI агентів: аналіз основних переваг Вступ З розвитком штучного інтелекту AI агенти стали гарячою темою у...

Рекомендації топ-10 AI інструментів 2026 року: розкриття справжнього потенціалу штучного інтелектуTechnology

Рекомендації топ-10 AI інструментів 2026 року: розкриття справжнього потенціалу штучного інтелекту

Рекомендації топ-10 AI інструментів 2026 року: розкриття справжнього потенціалу штучного інтелекту У часи швидкого розви...

2026年 Top 10 AWS工具和资源推荐Technology

2026年 Top 10 AWS工具和资源推荐

2026年 Top 10 AWS工具和资源推荐 У швидко розвиваючійся сфері хмарних обчислень Amazon Web Services (AWS) завжди була лідером, пр...