# Лабораторная работа №3 - REST API, Gateway и синхронный обмен между микросервисами Цель: Изучение шаблона проектирования gateway, построения синхронного обмена между микросервисами и архитектурного стиля RESTful API. Задачи: Создать 2 микросервиса, реализующих CRUD на связанных сущностях. Реализовать механизм синхронного обмена сообщениями между микросервисами. Реализовать шлюз на основе прозрачного прокси-сервера nginx. ## Запуск: Чтобы запустить контейнеры в docker, необходимо выполнить следующую команду: docker-compose -f \ docker-compose.yml up -d, где: -f - путь до docker-compose.yml файла -d - фоновый режим запуска ## Демонстрация работы программы ### Сервис Aggregator POST-метод для создания вакансии ![1.png](screenshots%2F1.png) GET-метод для получения вакансии по id ![2.png](screenshots%2F2.png) GET-метод для получения списка вакансий ![3.png](screenshots%2F3.png) PUT-метод для обновления вакансии ![4.png](screenshots%2F4.png) DELETE-метод для удаления вакансии ![5.png](screenshots%2F5.png) ### Метод, связывающий оба микросервиса Демонстрация работы: ![img_12.png](screenshots%2Fimg_12.png) ### Сущности Page -> Jobs (One-to-Many) ![img.png](screenshots/test/img.png) ![img_1.png](screenshots/test/img_1.png) ### Dockerfile (aggregator-api) ![img_2.png](screenshots/test/img_2.png) ### Dockerfile (parser-api) ![img_3.png](screenshots/test/img_3.png) ### Docker compose ![img_4.png](screenshots/test/img_4.png) ![img_5.png](screenshots/test/img_5.png) ![img_6.png](screenshots/test/img_6.png) ![img_7.png](screenshots/test/img_7.png) ### Nginx ![img_8.png](screenshots%2Ftest%2Fimg_8.png) ## Ссылка на видео: https://youtu.be/oPLQxyRDlXw