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