如何从graphql模式获取所有类型的列表?

时间:2018-08-30 14:48:17

标签: javascript reactjs graphql apollo apollo-client

在客户端上,我通过introspectSchema获得了架构。

在我的应用中,我想获取架构中所有类型的列表,但是解析现有对象是一项艰巨的任务。

有什么好方法吗?

2 个答案:

答案 0 :(得分:1)

GraphQL具有内置的强大自省功能。要获取架构中类型的名称,可以运行以下GraphQL查询:

{
  __schema {
    types {
      name
    }
  }
}

您可以在此处阅读有关GraphQL中自省的更多信息:

https://graphql.org/learn/introspection/

答案 1 :(得分:0)

要解析 0 1 2 0 1 ab 119.0 1 2 cd 129.0 2 3 ef 139.0 ,您需要constructor object type,结果将是printSchema

这是一个代码段:

string type

而且,您可以使用 const { introspectSchema } = require('graphql-tools'); const { printSchema } = require('graphql'); const schema = await introspectSchema(link); const typeDefs = printSchema(schema); 来合并merge-graphql-schemas

源代码:https://github.com/mrdulin/apollo-server-express-starter/blob/master/src/remote-schema/helper.js