问题描述
我正在使用带有 graphql 和 graphql-compose 的 nodejs 所以我将方案定义为
schemaComposer.Query.addFields({
Me: MyResolvers,Info: MyInfoResolvers,Post: PostResolvers
})
schemaComposer.Mutation.addFields({
Login: MyLoginResolvers,Register: RegisterResolvers
})
schemaComposer.Subscription.addFields({
Subscribe: Mysubscribe
})
所以任何获取所有查询、变异和订阅列表数组的函数 例如我需要打印到
[
{ operator: "Me",name: "Query" }
{ operator: "Info",name: "Query" }
{ operator: "Post",name: "Query" }
{ operator: "Login",name: "Mutation" }
{ operator: "Register",name: "Mutation" }
{ operator: "Subscribe",name: "Subscription" }
]
or Object is best
{
Query: ["Me","Info","Post"],Mutation: ["Login","Register"],Subscription: ["Subscribe"]
}
我可以使用 graphql 库中的 parse 函数解析请求中的查询以获取操作符和名称
import { parse } from "graphql"
const query:any = parse(context.req.body?.query)
const operator = query.definitions[0]?.operation
const name = query.definitions[0]?.selectionSet?.selections[0]?.name?.value
现在我需要在模式中列出所有定义的查询、变异、订阅?有可能吗?
谢谢
解决方法
您可以尝试保持自省。 [docs]