问:我想了解用户在Absinthe
graphql框架内的GraphQL查询中选择的字段。
我很难在%Absinthe.Resolution{}
中徘徊,因为它是一个巨大的blob 状态,这与许多文件的碎片文档一致。
给出以下示例。用户查询可以返回union类型的帖子。用户正在响应中遇到的每个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
收集必要的信息。
P.S。不熟悉Elixir Graphql实现" Absinthe"。 我显然会继续研究一个解决方案,如果我在这里找到一个帖子,但也许其他人遇到了类似的问题并且已经有了解决方案。
P.p.s:我不应该那么困难,因为这必须是一个非常常见的用例,因为GraphQL使服务器能够小心他从数据库中获取的数据。