У меня есть kotlin
бэкэнд, и я использую Javalin
в качестве сервера приложений, а graphql-java
и graphql-java-tools
libs для сборки моего GraphQL
сервера.
Я использую (или пытаюсь) использовать DDD, тогда моя модель домена просто нуждается в заботе о бизнес-правилах.
Цепочка вызовов похожа на разговор EntityResolver с> Aggregate Root, который взаимодействует с> Business Service, который вызывает> интерфейс репозитория, в котором ваша реализация находится в инфраструктуре, и разговор с жирным драйвером.У меня просто есть решатели для агрегирования корней.
Моя проблема в том, как я могу передать GraphQL
между слоями и передать в cypher
запрос в режиме DDD?
Например:
С этим определением ...
type Person {
id: ID!
relations: [Person!]!
}
... возможно выполнить
person {
id
relations {
id
relations {
id(relations-size: 2)
}
}
}
Реализация репозитория не знает, какова глубина консультации, тогда нетИмею смысл, я строю глубокий зашифрованный запрос, чтобы всегда приносить мне очень большие результаты.Домен также не знает аргументов, которые выбрал клиент.
Я полагаю, что, возможно, я потерял некоторое представление о Resolvers
.Есть ли способ эффективно организовать этот диалог между уровнями и сохранить домен без проблем инфраструктуры?