Skip to content

NEFORCEO/test_my_code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Test API - Демонстрационный проект

Этот проект создан для демонстрации правильной архитектуры FastAPI приложения с разделением бизнес-логики от эндпоинтов

📋 Описание

Test API - это учебно-демонстрационный проект, показывающий как правильно организовать структуру FastAPI приложения. Основная особенность - вся бизнес-логика вынесена из эндпоинтов в отдельные модули, что делает код чистым, поддерживаемым и тестируемым.

🎯 Ключевые особенности архитектуры

  • Чистые эндпоинты - роутеры содержат только вызовы функций
  • Разделение ответственности - бизнес-логика в отдельных файлах
  • Модульность - каждый тип операции в своем файле
  • Асинхронность - полная поддержка async/await
  • Валидация данных - через Pydantic схемы

🏗️ Структура проекта

├── 📄 main.py                 # Точка входа в приложение
├── 📁 routers/
│   └── 📄 router.py           # Эндпоинты (только вызовы функций!)
├── 📁 db/
│   ├── 📄 engine.py           # Конфигурация БД
│   ├── 📄 models.py           # SQLAlchemy модели
│   ├── 📄 session.py          # Сессии БД
│   ├── 📄 base.py             # Базовый класс модели
│   └── 📁 types/              # 🎯 БИЗНЕС-ЛОГИКА ЗДЕСЬ!
│       ├── 📄 get_all_users.py    # Получение пользователей
│       ├── 📄 save_token.py       # Сохранение токена
│       ├── 📄 delete_user.py      # Удаление пользователя
│       └── 📄 generate_token.py   # Генерация токена
├── 📁 schemas/
│   └── 📄 schemas.py          # Pydantic схемы валидации
├── 📁 client/
│   └── 📄 lifespan.py         # Startup/Shutdown события
└── 📄 pyproject.toml          # Конфигурация проекта

🚀 Эндпоинты

Метод Путь Описание
GET / Информация о приложении
GET /test/db Получить всех пользователей
POST /test/new_user Создать нового пользователя
DELETE /test/user Удалить пользователя

🛠️ Технологии

  • FastAPI - современный веб-фреймворк
  • SQLAlchemy - ORM для работы с БД
  • Pydantic - валидация данных
  • AsyncIO - асинхронное программирование
  • Python 3.9+

🎓 Цель проекта

Этот проект создан для демонстрации правильной архитектуры веб-приложений:

  1. Разделение ответственности - эндпоинты не знают о бизнес-логике
  2. Повторное использование - функции можно вызывать из разных мест
  3. Тестируемость - бизнес-логику легко тестировать отдельно
  4. Поддерживаемость - изменения в логике не затрагивают HTTP слой

👨‍💻 Разработчик: @NEFORNDU
📧 Для вопросов и предложений: создайте Issue в репозитории

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages