DAS_2024_1/agliullov_daniyar_lab_3/readme.md
2024-12-31 08:10:29 +04:00

49 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Лабораторная работа №3: REST API, шлюз и синхронный обмен данными между микросервисами
## Задание реализовать два микросервиса связанные единой базой и сущностями один ко многим
- Первый микросервис user предоставляет методы для регистрации авторизации и выхода пользователей
- Второй микросервис реализует сущность устройства, которые связанные с пользователями связью многие ко многим
### Реализация
Оба микросервиса написаны на fastapi и развернуты на вебсервере uvicorn. В самом докере развертывание осущетсвляется через веб сервер nginx,
который осуществляет роль прокси, прослушивая 80 http порт и перенправляя запрос на тот или иной микросервис
Для корректной работы swagger-а необходимо перенести location из nginx.conf в fastapi, чтобы ему был известен корневой путь, для построения документации
`app = FastAPI(
title="Smart lock",
root_path="/devices"
)`
`location /devices/ {
proxy_pass http://device_service:8001;
}`
### Развертывание
В корневую папку добавляем файл .env, где указываем значение переменных среды
**Пример файла:**
`DB_HOST = localhost
DB_PORT = 5432
DB_NAME =
DB_USER = postgres
DB_PASS = 1234
SECRET_AUTH_TOKEN = 1
SECRET_VERIFICATE_TOKEN = 1
SECRET_DEVICE_AUTH_TOKEN = 1
DEVICE_START_COUNTER = 1
STATIC_URL = https://testapi.danserver.keenetic.name/static/`
Далее указываем:
docker-compose up --build
[Видео](https://disk.yandex.ru/d/BGenDWYY6tIGaw)