• 1000
Что я хочу сделать, так это сделать фактические вызовы базы данных, чтобы вызвать dispatch () в загрузчике данных, когда были вызваны все преобразователи с уровня глубины запроса graphQL. Это должно обеспечить самые быстрые вызовы базы данных, поскольку все объекты одного типа могут вызываться в одном пакете.
Однако я не могу понять, как узнать, когда движок graphQL достиг конца уровня глубины запроса.
Для справки, если мы рассмотрим следующий запрос graphQL:
films {
actors {
name
}
}
то, что я называю уровнем глубины, - это каждый вложенный объект: поэтому фильмы - это один уровень, актеры это следующий et c ...
Итак, когда все преобразователи для фильмов были вызваны, я хочу, чтобы загрузчик данных действительно выполнял запрос к базе данных, таким образом я уверен, что это будет только одно обращение к базе данных и получение всех фильмов. И, конечно же, сделайте то же самое для каждого уровня запроса.
Но я не мог придумать способ проверить, когда были вызваны все преобразователи уровня, я узнал, как проверить, когда движок graphQL прошел уровень, когда он вызывает первый преобразователь на следующем уровне, но не когда он вызывает последний преобразователь на данном уровне.
По сути, я хочу достичь того, на что способна java реализация graphQL делаем, как описано здесь: https://github.com/graphql-java/graphql-java/issues/1198#issuecomment -630927882 (control + f «глубина», чтобы найти точную часть в комментарии)