【发布时间】:2018-05-13 12:48:05
【问题描述】:
我一直在看很多关于 GraphQL 的不同教程,它们的编写方式都不同。我想知道它们的优点和缺点是什么。此外,您将如何模块化不同文件中的类型、查询等?我看到的第一种方法是使用字符串来描述 GraphQL 模式,然后将其导出然后导入模式文件。这看起来像这样:
const typeDefs = `
type Query {
testString: String
}
`;
然后是使用 express-graphql 包并使用对象来描述模式的下一种方法。这看起来像这样:
const todoType = new GraphQLObjectType({
name: 'todo',
description: 'todo item',
fields: () => ({
itemId: {
type: (GraphQLInt),
description: 'The id of the todo.',
},
item: {
type: GraphQLString,
description: 'The name of the todo.',
},
completed: {
type: GraphQLBoolean,
description: 'Completed todo? '
}
})
});
我见过的另一种方法是使用 graphql 文件。
这只是个人喜好,还是使用其中一个比另一个有真正的好处?
我知道我提到的第一个可能缺少语法突出显示,但这看起来最接近实际的 graphql 语法。我的首选是使用 graphql 文件。但问题是如何将这一切模块化?如何将几个不同的 .graphql 文件合并在一起并在单个架构中使用它们?
【问题讨论】:
标签: typescript express graphql apollo