Skip to content

Проект REST API для управления рестораном — блюдами и заказами — с использованием FastAPI, SQLAlchemy, PostgreSQL и Alembic.

Notifications You must be signed in to change notification settings

vladelo777/FastAPI-Restaurant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python FastAPI PostgreSQL SQLAlchemy Alembic Docker Pytest Uvicorn Pydantic Git Logging

🍽️ FastAPI-Restaurant

Проект REST API для управления рестораном — блюдами и заказами — с использованием FastAPI, SQLAlchemy, PostgreSQL и Alembic.

Автор: Владислав Лахтионов


🚀 Технологии

  • Python 3.11+
  • FastAPI
  • SQLAlchemy (sync)
  • Alembic
  • PostgreSQL
  • Pydantic
  • Pytest
  • Uvicorn
  • Docker
  • logging

📁 Структура проекта

FastAPI-Restaurant/
├── app/
│   ├── api/                # Маршруты (эндпоинты FastAPI)
│   ├── core/               # Настройки, логирование, зависимости
│   ├── models/             # SQLAlchemy модели
│   ├── schemas/            # Pydantic-схемы
│   ├── services/           # Бизнес-логика
│   └── main.py             # Точка входа в приложение
│
├── tests/
│   ├── test_dish.py        # Тесты для блюд
│   └── test_order.py       # Тесты для заказов
│
├── alembic/                # Миграции базы данных
│   ├── versions/           # Файлы миграций
│   └── env.py              # Конфигурация Alembic
│
├── docker-compose.yml      # Конфигурация docker-compose для запуска сервисов
├── Dockerfile              # Dockerfile для сборки образа приложения
├── README.md               # Документация проекта
├── alembic.ini             # Настройки Alembic
├── .env.example            # Пример .env
├── requirements.txt        # Зависимости проекта

⚙️ Установка и запуск

Клонируй репозиторий:

git clone https://github.com/vladelo777/FastAPI-Restaurant.git
cd FastAPI-Restaurant

Настрой переменные окружения в файле .env, используя пример из .env.example.

Запусти приложение через Docker Compose:

docker-compose up --build

Это автоматически создаст и запустит контейнеры с приложением и базой данных.

Если нужно применить миграции внутри контейнера:

docker-compose exec app alembic upgrade head

После этого приложение будет доступно по адресу: http://localhost:8000

Для остановки контейнеров используй:

docker-compose down

🧪 Тестирование

pytest

Тесты используют httpx и TestClient FastAPI, чтобы покрыть основные сценарии запросов/ответов.


📘 Методы API

  • GET /dishes/ — список всех блюд

  • POST /dishes/ — добавить новое блюдо

  • DELETE /dishes/{id} — удалить блюдо

  • GET /orders/ — список всех заказов

  • POST /orders/ — создать новый заказ

  • DELETE /orders/{id} — отменить заказ

  • PATCH /orders/{id}/status — изменить статус заказа

Документация Swagger доступна по адресу:

http://localhost:8000/docs

📄 Логгирование

Проект использует встроенный логгер (app/core/logger.py) для отладки и отслеживания операций, включая:

  • создание/удаление блюд,
  • создание заказов,
  • обновление статуса и ошибки.

📬 Контакты

Автор: Владислав Лахтионов
GitHub: vladelo777
Telegram: @vladelo

💌 Не забудьте поставить звезду ⭐ на GitHub, если вам понравился проект! 😉

About

Проект REST API для управления рестораном — блюдами и заказами — с использованием FastAPI, SQLAlchemy, PostgreSQL и Alembic.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published