Skip to content

REFACTOR: API serialization to Pydantic (v2) #32

@firedotguy

Description

@firedotguy

🧭 Refactor: переход на Pydantic модели в API

📌 Цель

Упорядочить структуру ответов всех основных API-роутов за счёт использования Pydantic моделей, сократить ручную сериализацию и повысить читаемость и предсказуемость контрактов для фронтенда.
Рефактор не должен менять бизнес-логику — только способ формирования и валидации ответов.


📝 Описание

Сейчас каждый роут возвращает данные в виде «сырых» словарей, собранных вручную. Это:

  • усложняет поддержку;
  • затрудняет расширение схемы (например, добавление новых полей);
  • не даёт нормальной OpenAPI-документации;
  • не позволяет использовать статическую типизацию и автогенерацию SDK.

Переход на Pydantic:

  • стандартизирует ответы между модулями;
  • улучшит автогенерацию схем и документации;
  • упростит тестирование;
  • снизит количество дублированного кода.

📅 План работ

  • Создать единый модуль models для Pydantic схем.
  • Вынести сериализацию Userside → DTO в отдельные конвертеры.
  • Перевести основные роуты (task, customer, inventory, attachs, employee, ont, box, addata) на response_model.
  • Включить response_model_exclude_none=True для чистых ответов.
  • Обновить OpenAPI-документацию.

✅ Ожидаемый результат

  • Все ключевые роуты возвращают данные через Pydantic модели.
  • Документация /docs полностью соответствует актуальной схеме ответов.
  • Поддержка новых полей и изменений структуры в дальнейшем требует минимальных правок.
  • Код становится чище, понятнее и проще для ревью и тестирования.

Metadata

Metadata

Assignees

No one assigned

    Labels

    aiНайдено или предложено AIrefactorИзменение внутренней логики без изменения поведения

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions