# Лабораторная работа №3: REST API, шлюз и синхронный обмен данными между микросервисами ## Задание ### Цель Изучение принципов проектирования на основе паттерна шлюза, организации синхронного взаимодействия микросервисов и использования RESTful API. ### Основные задачи 1. Разработка двух микросервисов с поддержкой CRUD-операций для связанных сущностей. 2. Организация синхронного обмена данными между микросервисами. 3. Настройка шлюза на базе Nginx, выступающего в роли прозрачного прокси-сервера. ### Микросервисы 1. **hero_service** — микросервис для управления информацией о героях. 2. **item_service** — микросервис для обработки данных о предметах, принадлежащих героям. ### Связь между микросервисами - Один герой (**hero**) может иметь множество связанных предметов (**items**) (соотношение 1:многие). ## Инструкция по запуску Для запуска проекта выполните команду: ```bash docker-compose up ``` ## Описание работы ### Разработка микросервисов Микросервисы разработаны с использованием языка программирования Python. ### Синхронное взаимодействие `hero_service` обращается к `item_service` через HTTP-запросы для выполнения операций CRUD. Это позволяет получать актуальные данные о предметах, связанных с героями. ### Docker Compose Файл `docker-compose.yml` описывает многоконтейнерное приложение, включающее три сервиса: `hero_service`, `item_service` и `nginx`. Nginx выполняет маршрутизацию запросов между сервисами. ### Nginx Конфигурация Nginx задает параметры веб-сервера и обратного прокси, который принимает входящие запросы и направляет их к соответствующим микросервисам. ### Видеоматериал Подробнее ознакомиться с проектом можно в видео: https://vkvideo.ru/video150882239_456240342