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

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

# Сущности:
- VKImages:
1) ID: Id автогенерируемый в программе.
2) Url: ссылка на фото пользователя.
3) Text: текст фото, не содержащийся на фото, а приложенный текст к фото в ВКонтакте.
- VKUsers:
1) ID: Id автогенерируемый в программе.
2) Url: ссылка на пользователя.
3) PhotoUrl: ссылка на фото пользователя.
# Как запустить
Командой  "docker-compose up -d" в папке VKUsers/src/main/java/com/example/vkUsers

# Работа программы
Так как скриншоты этой программы можно делать очень долго, то основная работа программы будет видна в видео, 
в данном фотоотчете будут основные аспекты программы.

Начнем с VKImages. Модель следующая:

![img.png](images%2Fimg.png)

Контроллер с url для оснонвых методов swagger (PUT, GET, POST, DELETE):

![img_1.png](images%2Fimg_1.png)

DockerFile:

![img_2.png](images%2Fimg_2.png)

Теперь VKUsers. Модель:

![img_3.png](images%2Fimg_3.png)

Контроллер с url для оснонвых методов swagger (PUT, GET, POST, DELETE):

![img_4.png](images%2Fimg_4.png)

DockerFile:

![img_5.png](images%2Fimg_5.png)

DockerCompose:

![img_6.png](images%2Fimg_6.png)

nginx-config:

![img_7.png](images%2Fimg_7.png)

Синхронный обмен в следующем методе:

![img_8.png](images%2Fimg_8.png)

Видео -> https://drive.google.com/file/d/1D-8urLmnXjgNRQJJWq9SKR35FF0sBSWL/view?usp=sharing