假设我有一个GraphQL Schema,如:
type author {
id: Int
name: String
rating: Int
}
您可以使用此类型定义生成可以查询的可执行模式。
但是如果我没有上面的类型定义,但只有通过内省查询获得的GraphQLSchema对象,我该如何生成上述类型定义?
我查看了具有printSchema
方法的graphql / utilities,它接受GraphQLSchema对象并打印字符串。但我似乎无法单独过滤特定节点的输出,因为我不想要整个架构。解析字符串输出是不可取的。
赞赏指出正确的方法。
答案 0 :(得分:0)
与printSchema
不同,文档中没有提及,但graphql-js导出printType
方法完全是为了这个!见the sources。例如graphql-iso-date。
const { printType } = require('graphql');
const { GraphQLDate } = require('graphql-iso-date');
console.log(printType(GraphQLDate));
打印:
"""
A date string, such as 2007-12-03, compliant with the `full-date` format
outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for
representation of dates and times using the Gregorian calendar.
"""
scalar Date
可以简单地将其放到makeExecutableSchema
函数typeDefs
参数中。