获取解析程序中每种查询类型的字段

时间:2017-11-30 22:14:55

标签: elixir graphql absinthe

问:我想了解用户在Absinthe graphql框架内的GraphQL查询中选择的字段。

我很难在%Absinthe.Resolution{}中徘徊,因为它是一个巨大的blob 状态,这与许多文件的碎片文档一致。

给出以下示例。用户查询可以返回union类型的帖子。用户正在响应中遇到的每个id类型上选择roleparentIdslugPost

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使服务器能够小心他从数据库中获取的数据。

0 个答案:

没有答案