Все!
Можно ли получить доступ к информации и контексту для определения узла. Где я могу иметь абстрактное синтаксическое дерево (AST). Мне это действительно нужно, чтобы оптимизировать запросы моего объекта (то есть узла).
Например: если у меня есть следующий запрос graphql:
query { node(id:'some_id'){ name, surname, friends{ edges node{ { name,
surname} }}, posts{edges{ node{ id, text} }}}.
Итак, в этом случае сначала я должен сделать SQL-запрос для моего человека, который является узлом, затем я должен спросить SQL-друзей моего человека и еще один SQL-запрос для сообщений, которые были сделаны человеком. И, наверное, более поздние посты всех друзей. На самом деле это очень дорого. Я хотел бы проверить поля в запросе и построить один SQL-запрос.
Как лучше это сделать?
Спасибо!


DataLoader может помочь вам в этом, без необходимости проверять запрос. По сути, это позволяет группировать дорогие звонки. Вы пишете пакетную функцию, которая вызывается для каждого пакета, в этой функции вы создаете один SQL-запрос для всех отдельных вызовов. Это очень здорово!
По сути, это позволяет вам делать наивные, по сути, запросы к БД в ваших преобразователях, и при этом получать преимущество в производительности от одного запроса к БД. Надеюсь, это имеет смысл?
Прочтите документацию здесь и попробуйте (это круто) https://github.com/facebook/dataloader