简体   繁体   English

如何获取所有 graphql 模式查询、变异、订阅

[英]How to get all graphql schema query, mutation, subscribe

I am using nodejs with graphql and graphql-compose so i define scheme as我正在使用带有 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
})

So any function to get all query, mutation and subscribe to list array example i need print to所以任何 function 来获取所有查询、变异和订阅列表数组示例,我需要打印到

[
  { 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"]
}

I can parse the query from request using parse function from graphql library to get operator and name using我可以使用 parse function from graphql library 来解析请求中的查询,以使用

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

Now i need list all defined query, mutation, subscribe in schema?现在我需要列出所有定义的查询、突变、订阅模式? is it possible?可能吗?

Thanks谢谢

You could try leaving introspection on.您可以尝试保持内省。 [docs] [文档]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM