API для регистрации посылок и расчета стоимости их доставки.
- Регистрация посылок с их типом, весом и стоимостью
- Расчет стоимости доставки по заданной формуле
- Получение списка типов посылок
- Получение списка своих посылок с пагинацией и фильтрацией
- Получение данных о конкретной посылке
- Привязка посылки к транспортной компании
- FastAPI для API
- SQLAlchemy 2.0 для работы с базой данных (MySQL)
- Redis для кеширования курсов валют
- RabbitMQ для асинхронной обработки посылок
- Docker для контейнеризации
- Docker и docker-compose
- Клонируйте репозиторий:
git clone <repository-url>
- Создайте файл .env с переменными окружения:
MYSQL_USER=user
MYSQL_PASSWORD=password
MYSQL_HOST=db
MYSQL_PORT=3306
MYSQL_DATABASE=delivery_service
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_DB=0
REDIS_PASSWORD=
RABBITMQ_HOST=rabbitmq
RABBITMQ_PORT=5672
RABBITMQ_USER=guest
RABBITMQ_PASSWORD=guest
RABBITMQ_VHOST=/
- Запустите приложение с помощью docker-compose:
docker-compose up -d --build
- API будет доступно по адресу: http://localhost:8000
API документация доступна по адресу: http://localhost:8000/docs
POST /api/v1/packages/
- Зарегистрировать посылкуGET /api/v1/packages/
- Получить список своих посылокGET /api/v1/packages/{package_id}
- Получить данные о посылкеPOST /api/v1/packages/{package_id}/assign-company
- Привязать посылку к транспортной компанииGET /api/v1/package-types/
- Получить список типов посылокGET /api/v1/package-types/{package_type_id}
- Получить данные о типе посылок