Выборка полей по типу запроса в резольвере
В: Я хотел бы узнать, какие поля выбирает пользователь в запросе GraphQL в Absinthe
GraphQL Framework.
Мне тяжело ковыряться в %Absinthe.Resolution{}
так как это большой кусочек состояния, он идет с фрагментированной документацией по многим файлам.
Приведен следующий пример. Пользователь запрашивает сообщение, которое может вернуть тип объединения. Пользователь выбирает id
, role
, parentId
а также slug
на каждом Post
-типа встречается в ответе.
fragment Component on Component {
id
role
parentId
}
{
post(slug: "super-paloma-sunglasses") {
... on Post {
...Component
slug
}
}
}
Теперь у меня есть решатель:
def post(_root, %{slug: slug}, info) do
# fields_by_type = queried_fields(info)
result = App.Repo.execute(:document_by_slug, [slug])
{:ok, result}
end
Теперь моя проблема в том, что я не могу собрать необходимую информацию от info
без полного понимания всех деталей реализации Absinte.Resolution
,
Ps Будучи новичком в реализации Elixir Graphql "Абсент". Я, очевидно, продолжу работать над решением, и если я найду один пост здесь, но, возможно, кто-то еще сталкивался с чем-то подобным и уже нашел решение.
Pps: Я не должен быть таким сложным, так как это должно быть довольно распространенным вариантом использования, поскольку GraphQL позволяет серверу быть осторожным, например, с данными, которые он выбирает из базы данных.