Skip to content

Latest commit

 

History

History
98 lines (60 loc) · 3.45 KB

File metadata and controls

98 lines (60 loc) · 3.45 KB

Практическая работа №8

Ход выполнения

  1. Создаём директорию federation и инициализируем микросервисы и gateway с помощью npm init -y.

  2. Реализуем схемы для каждого субграфа:

    Каждая схема описывает GraphQL API соответствующего микросервиса.

  3. Настраиваем для каждого сервиса:

    • подключение к базе данных через Prisma
    • описание моделей и миграций
    • утилиты для работы с бизнес-логикой
    • сервисный слой (controllers/services)
  4. Инициализируем и настраиваем PostgreSQL через Docker, подключаем Prisma и выполняем миграции для создания таблиц в базе данных.

  5. Тестируем работу каждого субграфа отдельно (GraphQL запросы к users/items/orders сервисам) и проверяем корректность работы базы данных.

  6. Реализуем GraphQL Gateway (Apollo Federation / Supergraph):

    • объединяем все субграфы в единый graph
    • настраиваем маршрутизацию запросов
    • описываем context (включая авторизацию и передачу токена между сервисами)
  7. Строим supergraph из существующих микросервисов и реализуем единый слой API, обеспечивающий взаимодействие между сервисами через gateway.

  8. Создаём Dockerfile для каждого микросервиса и для gateway, обеспечивая изолированную сборку каждого сервиса.

  9. Настраиваем docker-compose:

    • поднимаем все микросервисы
    • поднимаем PostgreSQL
    • настраиваем сетевое взаимодействие между сервисами
    • пробрасываем необходимые порты
  10. Деплоим; смотрим `http://localhost:4000/

Демонстрация лабораторной

Демонстрация лабораторной по ссылке

Примеры запросов

Запрос на просмотр зарегестрированных методов: img

Операции с user:

  • Register img

  • Login img

Операции с item:

  • Create img

  • Update img

  • Delete img

  • List img

  • Get img

Операции с order:

  • Create img

  • Get img

  • Cancel img

  • List img

Frontend

Директория frontend содержит фронт React + Apollo Client: img