我已经使用连接助手在graphql apis中实现分页。我想为同一个模型多次实现连接,但它给了我重复的类型错误。任何人都可以提出解决方案来支持多个相同模型的 api 的分页。我使用了下面的代码。
connection :employees_index, function: Queries::Employees::Index.new
connection :employees_user_index, function: Queries::Employees::UserIndex.new
我已经使用连接助手在graphql apis中实现分页。我想为同一个模型多次实现连接,但它给了我重复的类型错误。任何人都可以提出解决方案来支持多个相同模型的 api 的分页。我使用了下面的代码。
connection :employees_index, function: Queries::Employees::Index.new
connection :employees_user_index, function: Queries::Employees::UserIndex.new
我知道已经很晚了,您可能已经找到了解决方案,但最近我遇到了同样的问题并搜索了解决方案但找不到。所以我就用我的方式解决了。我认为它可能对其他人有用:
解决方案:
您可以通过连接类来解决它;在 app 目录中的“graphql/connection”目录中;像这样:
class Connections::EmployeesConnection < GraphQL::Function
description 'Employees Connection'
type Types::EmployeeType.define_connection
end
现在使用这个类作为你的查询/突变类的超类,如下所示:
# Query class
class Queries::Employees::Index < Connections::EmployeesConnection
def call(obj, args, ctx)
# Do stuff here
end
end
user_index 也一样:
# Query class
class Queries::Employees::UserIndex < Connections::EmployeesConnection
def call(obj, args, ctx)
# Do stuff here
end
end
同样,您可以对其他员工查询和突变使用相同的连接类;它不会给你一个重复定义连接的错误。