Проект включает в себя два сервиса, первый принимает запрос с указанием кадастрового номера, широты и долготы и эмулирует отправку запроса на внешний сервер. Второй сервис принимает и обрабатывает запрос до 60 секунд и отдает результат запроса. Считается, что внешний сервер может ответить true
или false
. Данные запроса на сервер и ответ с сохраняются в базу данных.
Функционал обоих сервисов протестирован с помощью pytest. Каждый сервис завернут в докер-контейнер.
Сервис содержит следующие эндпоинты:
"/query" - для получения запроса
"/result" - для отправки результата
"/ping" - проверка, что сервер запустился
"/history" - для получения истории запросов
"/history/<cadastre_number: int>" - для получения истории запросов
"/admin" - панель администратора
"/docs" или "/redoc" - документация к сервису
- http://127.0.0.1:8000/docs - автоматически сгенерированная документация Swagger для первого сервиса
- http://127.0.0.1:8003/docs - автоматически сгенерированная документация Swagger для второго сервиса
- Python 3.11
- FastAPI
- Docker
- SQLAlchemy
- Alembic
- GitHub Actions (CI)
- Клонируйте репозиторий и перейдите в него в командной строке:
git clone git@github.com:Esposus/cadastre_map.git
- Перейдите в папку проекта:
cd cadastre_map
- Заполните
.env
файл с переменными окружения по примеру:
echo DATABASE_URL=sqlite:///./cadastre.db >> app/.env
- Установите и запустите приложения в контейнерах:
docker-compose build & docker-compose up
telegram: @Vanadoo