revert zhirnova_alyona_lab_3
This commit is contained in:
2025-10-07 12:36:14 +04:00
parent ee99ff035e
commit de37e35815
8 changed files with 0 additions and 387 deletions

View File

@@ -1,70 +0,0 @@
# Лабораторная работа №3 - REST API, Gateway и синхронный обмен между микросервисами
## Цель
изучение шаблона проектирования gateway, построения синхронного обмена между микросервисами и архитектурного стиля RESTful API.
### Задачи
1. Создать 2 микросервиса, реализующих CRUD на связанных сущностях.
2. Реализовать механизм синхронного обмена сообщениями между микросервисами.
3. Реализовать шлюз на основе прозрачного прокси-сервера nginx.
4. Оформить отчёт в формате Markdown
### Инструменты для выполнения:
1. Docker
2. Docker Compose
3. Python
4. Postman
## Компоненты системы:
1. Cartoon Service (cartoon_service/) - сервис для управления мультфильмами
2. Producer Service (producer_service/) - сервис для управления режиссерами
3. Nginx - обратный прокси и балансировщик нагрузки
4. Docker Compose - оркестрация контейнеров
## API Endpoints:
GET / - Получить все мультфильмы
GET /{cartoon_uuid} - Получить мультфильм по ID
GET /full - Получить все мультфильмы с информацией о продюсерах
GET /full/{cartoon_uuid} - Получить мультфильм с информацией о продюсере
GET /by-producer/{producer_uuid} - Получить мультфильмы по продюсеру
POST / - Создать новый мультфильм
PUT /{cartoon_uuid} - Обновить мультфильм
DELETE /{cartoon_uuid} - Удалить мультфильм
GET / - Получить всех режиссеров
GET /{producer_uuid} - Получить режиссера по ID
GET /with-cartoons/{producer_uuid} - Получить режиссера с его мультфильмами
GET /check/{producer_uuid} - Проверить существование режиссера
POST / - Создать нового режиссера
PUT /{producer_uuid} - Обновить режиссера
DELETE /{producer_uuid} - Удалить режиссера
Пример POST http://localhost/cartoon_service/:
```json
{
"title": "Король Лев",
"year": 1994,
"producer_id": "997aa4c5-ebb2-4794-ba81-e742f9f1fa30"
}
```
## Особенности реализации:
1. Микросервисная архитектура - каждый сервис независим и выполняет одну бизнес-функцию
2. Взаимодействие через HTTP - сервисы общаются через REST API вызовы
3. Контейнеризация - все компоненты запускаются в Docker контейнерах
4. Автоматическая сборка - Docker Compose автоматически собирает и запускает все сервисы
5. Единая точка входа - Nginx обеспечивает единый endpoint для всех сервисов
## Запуск:
1. На компьютере должны быть установлены Docker и Docker Compose
2. Скачайте папку с репозитория
3. Перейдите в директорию с yml
4. Запустите с помощью команды:
`docker-compose up --build`
5. Откройте Postman
## Что делает данная лабораторная работа:
Проект представляет собой микросервисное приложение для управления базой данных мультфильмов и их режиссеров. Система состоит из двух независимых сервисов, взаимодействующих через REST API, и обратного прокси на базе Nginx для маршрутизации запросов.
## Видео:
https://rutube.ru/video/private/22f82905c7e737e2863bd9726cedf3e5/?p=FkA762T6Z6K0TDyHZ5Yaeg