Система, состоящая из нескольких микросервисов, которая будет предоставлять актуальную информацию о товарах с сайта wildberries.ru. Информация о товарах содержит данные о:
- артикульном номере (id товара);
- цене товара;
- размерах товара;
- остатках товара на разных складах.
За информацией пользователь может обратиться напрямую к api по ссылке (пример: http://127.0.0.1:8000/api/v1/product/{id}), либо в телеграм боте.
Информация будет доступна пользователю после введения id товара.
Если информация об этом товаре запрошена впервые, данные для пользователя будут выгружаться напрямую с официального сайта, если же данные о конкретном товаре ранее уже были запрошены, данные будут отдаваться из базы данных.
Информация в базе данных обновляется в фоновом режиме каждые 5 минут.
- Python
- FastAPI
- Pydantic
- PostgreSQL
- SQLAlchemy + Alembic
- Aiogram
- Docker, docker-compose
- Taskiq
- Redis
Клонировать репозиторий и перейти в него в командной строке:
git clone git@github.com:mawuta-super-hack/wb-api.git
cd ./wb-api
Запуск docker-compose:
docker compose up -d --build
Выполнение миграций:
docker compose exec web_fastapi alembic upgrade head
для запуска контейнера с телеграм ботом необходимо указать актуальный токен в .env файле.
- Получение информации о товаре:
GET http://127.0.0.1:8000/api/v1/product/{id}
{
"nm_id": 0,
"current_price": 0,
"sum_quantity": 0,
"quantity_by_sizes": [
{
"size": "string",
"quantity_by_wh": [
{
"wh": 0,
"quantity": 0
}
]
}
]
}
Документация доступна по ссылке http://127.0.0.1:8000/api/openapi после развертывания приложения.
Автор проекта:
Клименкова Мария Github