用于 vuex-orm 插件"filter object"查询的 GraphQL 模式



试图让"对象过滤"与apolo-server和vuex-orm-graphql一起工作。

叠:

  • 后端:nodejs,apollo-server
  • 前端:vue/vuex-orm + vuex-orm-graphql-plugin。该应用程序根据文档中描述的"筛选器对象"实现.fetch()
Comment.fetch({ postId: '15', deleted: false });

我无法让客户端发送查询,因为我不知道如何为"过滤器对象"情况定义查询架构。

尝试了几种方法,例如:

input FilterObject {
postId: String
deleted: Boolean
}
type query {
comments(filter: FilterObject)
}

未发送 graphql 查询请求,出现以下错误:

"Cannot query field "nodes" on type "Comments"."

如果我稍微修改一下架构,我可以发送查询,但是它错误地表明filter字段类型是错误的。

需要如何定义架构才能使筛选器功能正常工作?

更新:

我不确定这是实现目标的最佳方式,但我发现使用"光标"概念可以解决问题。

我定义了一个包含筛选依据字段的"过滤器"输入类型。

接下来,对于查询输出,有一个新的游标类型,其中包含"节点"字段。请注意,节点字段是查询类型的数组。

所以它最终是这样的:

input ConfigFilter {
services: [String]!
}
type ConfigCursor {
cursor: String!
nodes: [Config!]
}
type Config {
id: ID!
service: String!
data: Blackbox
}

正如所指出的,我发现并确认使用 vuex-orm 和相关的 graphql 插件测试了它。

希望对您有所帮助!

最新更新