Yoga GraphQL Server + Призма-сервер: мультитенанс

Я устанавливаю внутреннюю среду для многопользовательской базы данных, используя Prisma Server и Yoga GraphQL.

Чтобы управлять многопользовательским режимом, мы решаем его с помощью "env" (dev/stage/prod) Prisma Server. Все в порядке, сервером Prisma было не сложно управлять, и теперь у нас есть конечная точка для каждого арендатора, например: http://localhost:4466/service/tenant/

После этого было легко извлечь *.graphql из Prisma с помощью getq-схемы graphql.

Но теперь трудность заключается в следующем: как настроить сервер GraphQL на столько услуг, сколько мне нужно и один арендатор?

Основываясь на различных примерах / tuto / docs /... Я не нахожу способ настроить GraphQL Server в моем index.js, чтобы сказать: прослушивать несколько URI, и к каждому URI подключен один сервер призмы.

Пример, мне нужно:

Конечная точка сервера GraphQL http://localhost:4000/service-1/client-1/ можно только запросить http://localhost:4466/service-1/client-1/

и для client-2 (второй арендатор) http://localhost:4000/service-1/client-2/ можно только запросить http://localhost:4466/service-1/client-2/

Сервер GraphQL, кажется, может быть запущен только один раз на порт (здесь 4000)

[РЕДАКТИРОВАТЬ] Здесь код для иллюстрации https://github.com/mouchimotte/prisma-yoga-multitenancy

2 ответа

Как сказал @rma в комментарии, вы можете использовать пакет prisma-multi-tenant npm для создания мультитенантного приложения.

Вы можете прочитать эту статью, которая объясняет, как заставить это работать: https://medium.zenika.com/building-a-multi-tenant-application-with-prisma-11bf890304d6

Если вы хотите использовать стратегию общей базы данных, то есть одну базу данных со столбцом идентификатора арендатора, вы можете использовать этот пакет:https://www.npmjs.com/package/node-express-multitenant .

Другие вопросы по тегам