# Лабораторная работа №3 - REST API, шлюз и синхронный обмен данными между микросервисами ## Задание 1. Создание двух микросервисов, которые реализуют операции CRUD для связанных сущностей. 2. Реализация механизма синхронного обмена данными между микросервисами. 3. Настройка шлюза на базе Nginx в качестве прозрачного прокси-сервера. ### Микросервисы: 1. **theme_service** — сервис, который управляет информацией о темах. 2. **book_service** — сервис, который обрабатывает данные о книгах, принадлежащих темам. ### Связь между микросервисами: - Один документ (theme) может иметь множество связанных предметов (book) (соотношение 1 ко многим). ## Как запустить проект: Для запуска приложения необходимо выполнить команду: `docker-compose up` ## Описание работы: Для разработки микросервисов был выбран язык программирования Python. ### Синхронный обмен данными Сервис `theme_service` отправляет HTTP-запросы к `book_service` при выполнении определенных операций CRUD. Это позволяет получать актуальную информацию о книгах, связанных с конкретными темами. ### Docker Compose Конфигурационный файл `docker-compose.yml` представляет собой многоконтейнерное приложение, которое включает в себя три сервиса: `theme_service`, `book_service` и `nginx`. Функция маршрутизации возложена на сервер Nginx, который обрабатывает запросы и перенаправляет их на соответствующие микросервисы. ### Nginx Конфигурационный файл Nginx определяет настройки веб-сервера и обратного прокси, который управляет входящими запросами и направляет их на соответствующие сервисы. ## ВИДЕО https://disk.yandex.ru/i/cmY6ZnlH938Mpw