Лабораторная работа №3 - REST API, шлюз и синхронный обмен данными между микросервисами

Задание

Цель:
Изучение принципов проектирования с использованием паттерна шлюза, 
организации синхронной передачи данных между микросервисами 
и применения архитектурного стиля RESTful API.


Задачи:
Создание двух микросервисов, которые реализуют операции CRUD для связанных сущностей.
Реализация механизма синхронного обмена данными между микросервисами.
Настройка шлюза на базе Nginx в качестве прозрачного прокси-сервера.
Микросервисы:
book_service — сервис, который управляет книгами.
shelf_service — сервис, который обрабатывает данные о полках.
Связь между микросервисами:
Один документ (book) может иметь множество связанных предметов (shelf) (соотношение 1 ко многим).
Как запустить проект:
Для запуска приложения необходимо выполнить команду:

docker-compose up
Описание работы:
Для разработки микросервисов был выбран язык программирования Python.

Синхронный обмен данными
Сервис book_service отправляет HTTP-запросы к shelf_service
при выполнении определенных операций CRUD. Это позволяет получать актуальную информацию о книгах,
связанных с конкретными полками.

Docker Compose
Конфигурационный файл docker-compose.yml 
представляет собой многоконтейнерное приложение, которое включает в себя три сервиса: 
book_service, shelf_service и nginx. Функция маршрутизации возложена на сервер Nginx,
который обрабатывает запросы и перенаправляет их на соответствующие микросервисы.

Nginx
Конфигурационный файл Nginx определяет настройки веб-сервера и 
обратного прокси, который управляет входящими запросами 
и направляет их на соответствующие сервисы.

ВИДЕО

https://cloud.mail.ru/public/Aijk/T8myacqz5