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

## Задание

+ Создать 2 микросервиса, реализующих CRUD на связанных сущностях.
+ Реализовать механизм синхронного обмена сообщениями между микросервисами.
+ Реализовать шлюз на основе прозрачного прокси-сервера nginx.

### Микросервисы
1. **teacher_service** — сервис, который управляет информацией о пользователях

2. **discipline_service** — сервис, который обрабатывает данные о заказах пользователей.

### Критерии

+ Микросервисы должны быть связаны как 1-ко-многим.
Например, учитель (teacher) может преподовать несколько дисциплин (discipline).

## Описание работы

Данная лабораторная работа написана на языке - pyton.

1. Реализация синхронного обмена

Сервис **teacher_service** отправляет HTTP-запросы к сервису **discipline_service** при выполнении определенных операций CRUD. Тем самым получим актуальную информацию о дисциплинах, связанных с конкретными учителем.

2. Реализация gateway при помощи nginx

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

3. Docker Compose

Конфигурационный файл docker-compose.yml - это многоконтейнерное приложение, которое включает в себя три сервиса: teacher_servic, discipline_service и nginx.

# Видеозапись работы программмы

https://vkvideo.ru/video186826232_456239554