Address Book Service — это FastAPI-приложение для хранения и управления
адресными данными по телефонным номерам.
Данные хранятся в Redis, а сервис включает
полный набор CRUD-операций, валидацию данных, собственные ошибки и тестовый набор
на основе pytest + fakeredis.
- Создание записи (телефон → адрес)
- Получение адреса по номеру телефона
- Обновление существующей записи
- Удаление записи
- Нормализация телефонных номеров
- Обработка пользовательских ошибок (ServiceError, RepoError)
- Полное покрытие тестами (repositories, services, routers)
- Docker-окружение для локального запуска
- CI через GitHub Actions
- FastAPI
- Redis / redis-asyncio
- Pydantic v2
- Poetry
- Pytest + pytest-asyncio + fakeredis
- Docker & Docker Compose
- GitHub Actions
git clone git@github.com:AlexandrSmolyachkovGH/address_book.git
cd address_bookСоздай файл .env:
REDIS_HOST=db_redis
REDIS_PORT=6379
REDIS_PASSWORD="address_book_RedisPwd123"
docker compose up --build
http://localhost:8081
http://localhost:8081/docs
Создать контакт (телефон + адрес)
Пример тела запроса:
{
"phone": "4951002030",
"address": "Москва, ул. Тестовая, 10"
}Получить данные об адресе по номеру телефона
Обновить адрес по телефону Пример тела запроса:
{
"phone": "4951002030",
"address": "Москва, ул. Новая Тестовая, 25"
}Удалить запись по номеру

