47 lines
2.2 KiB
Markdown
47 lines
2.2 KiB
Markdown
|
# Лабораторная работа №3 - REST API, Gateway и синхронный обмен между микросервисами
|
|||
|
|
|||
|
## Задание
|
|||
|
|
|||
|
* Создать 2 микросервиса, реализующих CRUD на связанных сущностях.
|
|||
|
* Реализовать механизм синхронного обмена сообщениями между микросервисами.
|
|||
|
* Реализовать шлюз на основе прозрачного прокси-сервера nginx.
|
|||
|
|
|||
|
## Предметная область:
|
|||
|
|
|||
|
Имеются 2 сущности: одна сущность - больница, вторая - пациент, привязанный к этой больнице
|
|||
|
Поля больницы: УИД (уникальный идентификатор) больницы, название, адрес. Поля пациента: УИД пациента, имя, фамилия, телефон, УИД больницы, к которой привязан пациент.
|
|||
|
|
|||
|
|
|||
|
## Запуск ЛР:
|
|||
|
|
|||
|
Введем в терминале команду:
|
|||
|
```
|
|||
|
docker compose up --build
|
|||
|
|
|||
|
```
|
|||
|
Эта команда сначала выполнит сборку, а затем запустит контейнеры.
|
|||
|
|
|||
|
Также нужно убедиться в том,что 80 порт свободен и тогда вся система запустится.
|
|||
|
|
|||
|
Для каждой сущности были реализованы CRUD-операции.
|
|||
|
|
|||
|
### Patient сервис:
|
|||
|
|
|||
|
* GET /patients — получить список всех пациентов
|
|||
|
* POST /patients — создать нового пациента
|
|||
|
* GET /patients/{id} — получить пациента по ID
|
|||
|
* PUT /patients/{id} — обновить пациента по ID
|
|||
|
* DELETE /patients/{id} — удалить пациента по ID
|
|||
|
|
|||
|
### Hospital сервис:
|
|||
|
|
|||
|
* GET /hospitals — получить все больницы
|
|||
|
* POST /hospitals — создать новую больницу
|
|||
|
* GET /hospitals/{id} — получить больницу по ID
|
|||
|
* PUT /hospitals/{id} — обновить больницу по ID
|
|||
|
* DELETE /hospitals/{id} — удалить больницу по ID
|
|||
|
|
|||
|
|
|||
|
# Видео
|
|||
|
https://disk.yandex.ru/i/10ziaq_H6ltg5g
|