Skip to content

lldckv/SystemDesignLab8

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Практическая работа №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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors