GraphQL-Ruby:类型分辨率的自定义逻辑

时间:2017-10-06 16:46:05

标签: ruby-on-rails graphql graphql-ruby

我的团队一直在使用GraphQL Ruby,我们已经找到了用于应用范围和对查询进行排序的用例,并且已经在几个地方反复编写相同的代码。

我想知道,有没有办法在任何使用它的地方实现解析逻辑?我想在每个返回特定类型的字段上添加过滤和排序参数,而不必在每次从字段返回时写入额外的样板。在下面的示例中,我将使用GraphQL :: Function包装它,并在args上传递排序和过滤参数。我不想每次都使用该函数,只是让类型实现了将这些参数用于自己的解析的能力。

field :institutionUser, Types::InstitutionUserType do with_filtering(resolve ->(obj, args, ctx) { ....resolution logic }) end

1 个答案:

答案 0 :(得分:0)

听起来像您想使用解析器。

field :institutionUser, resolver: Resolvers::InstitutionUser
...
module Resolvers
  class InstitutionUser < GraphQL::Schema::Resolver
    type Types::InstitutionUser

    def resolve
      ...resolution logic
    end
  end
end

https://graphql-ruby.org/fields/resolvers.html