浏览 301
分享
Schema 和类型
在本页,你将学到关于 GraphQL 类型系统中所有你需要了解的知识,以及类型系统如何描述可以查询的数据。因为 GraphQL 可以运行在任何后端框架或者编程语言之上,我们将摒除实现上的细节而仅仅专注于其概念。
查询和变更类型(The Query and Mutation Types)
你的 schema 中大部分的类型都是普通对象类型,但是一个 schema 内有两个特殊类型:
schema {
query: Query
mutation: Mutation
}
每一个 GraphQL 服务都有一个 query
类型,可能有一个 mutation
类型。这两个类型和常规对象类型无差,但是它们之所以特殊,是因为它们定义了每一个 GraphQL 查询的入口。因此如果你看到一个像这样的查询:
# { "graphiql": true }
query {
hero {
name
}
droid(id: "2000") {
name
}
}
那表示这个 GraphQL 服务需要一个 Query
类型,且其上有 hero
和 droid
字段:
type Query {
hero(episode: Episode): Character
droid(id: ID!): Droid
}
变更也是类似的工作方式 —— 你在 Mutation
类型上定义一些字段,然后这些字段将作为 mutation 根字段使用,接着你就能在你的查询中调用。
有必要记住的是,除了作为 schema 的入口,Query
和 Mutation
类型与其它 GraphQL 对象类型别无二致,它们的字段也是一样的工作方式。
评论列表