我希望能够向子查询添加参数,但是我不知道如何使它工作。
我正在尝试使用包含我所拥有的查询的查看器对象编写模式,以便我可以返回边/节点。我认为我缺少有关解析器的一些基本知识,但是经过大量的搜索之后,我仍然不明白。
我的模式如下(只是相关位):
type Query {
viewer: Viewer!
}
type Viewer {
allLinks(skip: Int, first: Int, last: Int, orderBy:
LinkOrderByInput): LinkConnection
}
LinkConnection是您所期望的,它具有一个edges属性,该属性是节点等的列表。
我正在使用Prisma,解析器如下所示:
const allLinks = async (parent, args, context, info) => {
const links = await context.prisma.linksConnection({
first: args.first,
orderBy: args.orderBy,
})
const count = await context.prisma
.linksConnection()
.aggregate()
.count()
return {
pageInfo: links.pageInfo,
edges: links.edges,
count,
}
}
export const viewer = async (parent, args, context, info) => {
const links = await allLinks(parent, args, context, info)
return { allLinks: links }
}
然后如果我执行此查询:
query {
viewer {
allLinks(first: 1, orderBy:createdAt_DESC) {
edges {
node {
id
}
}
count
}
}
}
然后它运行时并没有实际出错,但是它返回了所有链接,而不仅仅是返回一个链接,而且我已经使用console.logging了,似乎first和orderBy参数实际上并没有做任何事情。>
任何人都可以帮助说明我如何构建解析器,以使参数实际起作用吗?看来这应该是显而易见的!