Skip to content

GarryFerstein/FastAPI_Project

Repository files navigation

REST API для списка покупок

Этот проект реализует REST API для управления списком покупок с использованием FastAPI. API позволяет создавать, читать, обновлять и удалять (CRUD) элементы списка покупок, а также получать расходы, сгруппированные по категориям товаров, и общую сумму всех покупок. В проекте также предусмотрен тестовый скрипт с использованием библиотеки requests для демонстрации работы API.

Функциональность

  • CRUD-операции:
    • Создание нового товара (POST /items/)
    • Получение списка всех товаров (GET /items/)
    • Получение товара по ID (GET /items/{item_id})
    • Обновление товара (PUT /items/{item_id})
    • Удаление товара (DELETE /items/{item_id})
  • Расчет расходов:
    • Получение расходов, сгруппированных по категориям, и общей суммы всех товаров (GET /expenses/)
  • Модель данных:
    • Каждый товар содержит поля: id (UUID), name (название), category (категория, например, "Электроника" или "Продовольствие"), price (цена), unit (единица измерения), quantity (количество).
  • Тестирование:
    • Тестовый скрипт (test_api.py) демонстрирует работу всех эндпоинтов API, отправляя запросы и проверяя ответы, включая обработку ошибок.

Используемые технологии

  • Python 3.8+
  • FastAPI: Для создания REST API
  • Pydantic: Для валидации и моделирования данных
  • Uvicorn: ASGI-сервер для запуска API
  • Requests: Для тестирования эндпоинтов API
  • UUID: Для генерации уникальных идентификаторов товаров

Установка

  1. Клонируйте репозиторий: git clone https://github.com/GarryFerstein/FastAPI_Project.git
  2. Создайте виртуальное окружение: python -m venv venv
  3. Активируйте виртуальное окружение: source venv/bin/activate
  4. Установите зависимости: pip install fastapi uvicorn pydantic requests

Запуск проекта

  1. Запустите сервер FastAPI uvicorn main:app --reload Сервер будет доступен по адресу http://127.0.0.1:8000 Swagger UI: http://127.0.0.1:8000/docs

  2. Запустите тесты python test_api.py

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages