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 .