扩展 GraphQL 过滤器定义
Extending a GraphQL Filter Definition
我已经扩展了我的 graphql 架构以添加总计解析器,但我似乎无法扩展过滤器以在此字段上进行过滤。我不知道有什么问题,因为它看起来很简单,所以它可能不受支持?我将 Postgraphile 与 makeExtendSchemaPlugin 一起使用,但我认为问题是基本的 graphql 语法。
return {
typeDefs: gql`
extend type Note {
lines: Int
}
extend type NoteFilter {
lines: IntFilter
}
`,
resolvers: {
Note: {
resolve: async(parent, args, ctx, info) => {
// logic here
return parent['@lines'].data.length;
}
}
}
}
这看起来很简单。计数解析器工作,并告诉我注释中有多少行,但我无法对其进行过滤。我不想将过滤器逻辑放在行 属性 本身中。如果我定义一个新查询并给它一个 NoteFilter,过滤器存在但不包括我的扩展 属性(行)。有人知道我做错了什么吗?这是我希望查询的最终目标:
gql`
{
allNotes(filter: {
lines: {
greaterThan: 10
}
}) {
id
lines
line {
content
}
}
}
`
如果要扩展输入对象类型,正确的语法是:
extend input NoteFilter {
lines: IntFilter
}
在 SDL 中,输入对象类型表示为 input
,而不是 type
。
我已经扩展了我的 graphql 架构以添加总计解析器,但我似乎无法扩展过滤器以在此字段上进行过滤。我不知道有什么问题,因为它看起来很简单,所以它可能不受支持?我将 Postgraphile 与 makeExtendSchemaPlugin 一起使用,但我认为问题是基本的 graphql 语法。
return {
typeDefs: gql`
extend type Note {
lines: Int
}
extend type NoteFilter {
lines: IntFilter
}
`,
resolvers: {
Note: {
resolve: async(parent, args, ctx, info) => {
// logic here
return parent['@lines'].data.length;
}
}
}
}
这看起来很简单。计数解析器工作,并告诉我注释中有多少行,但我无法对其进行过滤。我不想将过滤器逻辑放在行 属性 本身中。如果我定义一个新查询并给它一个 NoteFilter,过滤器存在但不包括我的扩展 属性(行)。有人知道我做错了什么吗?这是我希望查询的最终目标:
gql`
{
allNotes(filter: {
lines: {
greaterThan: 10
}
}) {
id
lines
line {
content
}
}
}
`
如果要扩展输入对象类型,正确的语法是:
extend input NoteFilter {
lines: IntFilter
}
在 SDL 中,输入对象类型表示为 input
,而不是 type
。