我正在使用Apollo + Express开始学习GraphQL,我发现这个例子在typedefs底部添加了一个
然而,如果我从typedefs中删除
schema
名称。let typeDefs = [`
type Query {
hello: String
}
schema {
query: Query
}`];
在定义解析器后,使用makeExecutableSchema
生成模式:
let schema = makeExecutableSchema({typeDefs, resolvers});
然而,如果我从typedefs中删除
schema
部分,我仍然可以正常使用我的端点,例如:http://localhost:3000/graphql/?query={hello}
返回:
{"data":{"hello":"world"}}
但是如果我更改查询部分为其他内容,服务器将失败:
let typeDefs = [`
type Query {
hello: String
}
schema {
testquery: Query
}`];
GraphQLError: 语法错误: 意外名称 "testquery"
我已经阅读过Apollo的教程页面以及 How To GraphQL教程(适用于Node.js+GraphQL),但找不到有关schema
部分的参考文献。
它是用来做什么的?