Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про FastAPI: FastAPI, project structure, microservice, modular architecture

Как организуешь файловую структуру небольшого микросервиса на FastAPI?

Вопрос проверяет понимание организации файловой структуры микросервиса на FastAPI для обеспечения модульности и масштабируемости.

Короткий ответ

Файловая структура небольшого микросервиса на FastAPI обычно включает корневую папку с main.py, папку app с модулями routers, models, schemas, services и config. Это разделяет логику по слоям: маршруты, бизнес-логика, модели данных и настройки. Такая структура упрощает поддержку и тестирование.

Длинный ответ

Организация файловой структуры микросервиса на FastAPI

Для небольшого микросервиса на FastAPI рекомендуется использовать модульную структуру, которая разделяет ответственность между слоями. Это облегчает разработку, тестирование и масштабирование.

Типовая структура

project/
├── app/
│   ├── __init__.py
│   ├── main.py
│   ├── config.py
│   ├── routers/
│   │   ├── __init__.py
│   │   └── items.py
│   ├── models/
│   │   └── item.py
│   ├── schemas/
│   │   └── item.py
│   ├── services/
│   │   └── item_service.py
│   └── dependencies.py
├── tests/
│   └── test_items.py
├── requirements.txt
└── Dockerfile

Описание компонентов

  • main.py — точка входа, создает экземпляр FastAPI и подключает роутеры.
  • config.py — настройки приложения (переменные окружения, база данных).
  • routers/ — обработчики HTTP-запросов, каждый файл отвечает за группу эндпоинтов.
  • models/ — ORM-модели (например, SQLAlchemy) для работы с базой данных.
  • schemas/ — Pydantic-схемы для валидации входных и выходных данных.
  • services/ — бизнес-логика, вызываемая из роутеров.
  • dependencies.py — общие зависимости (например, получение сессии БД).

Пример кода

# app/main.py
from fastapi import FastAPI
from app.routers import items

app = FastAPI()
app.include_router(items.router)

# app/routers/items.py
from fastapi import APIRouter, Depends
from app.schemas.item import Item
from app.services.item_service import create_item

router = APIRouter(prefix="/items", tags=["items"])

@router.post("/")
async def add_item(item: Item):
    return await create_item(item)

Вывод

Такая структура подходит для микросервисов, где важна четкая граница между слоями. Она упрощает рефакторинг, добавление новых функций и написание тестов, что особенно полезно при командной разработке.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • FastAPI

    FastAPI

Ключевые слова

#FastAPI

#project structure

#microservice

#modular architecture

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.