Как я могу построить сервер graphql с java-graphql и neo4j в режиме DDD? - PullRequest
1 голос
/ 26 апреля 2019

У меня есть 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.Есть ли способ эффективно организовать этот диалог между уровнями и сохранить домен без проблем инфраструктуры?

...