导入
类型系统与语言简介
了解 GraphQL 类型系统和语言。
类型系统
从前几节课中我们了解到,GraphQL 会选择对象上的字段,并决定请求何种操作。让我们来逐步分析以下 GraphQL 查询:
1{ 2 pizzas { 3 id 4 name 5 } 6}
-
我们从一个特殊的根对象
{}开始。 -
在该对象上选择
pizzas字段。 -
我们希望每个返回的
pizzas对象都包含id和name字段。
在 GraphQL 中,服务器始终会响应客户端发送的查询。因此,我们可以在不了解服务器细节的情况下,预测查询将返回什么样的结果。但为了更好地使用 GraphQL,我们需要清楚地了解有哪些数据可用、可以选取哪些字段,以及能够执行哪些操作。
每个 GraphQL 服务器都必须描述客户端可能查询的所有数据。当查询到达时,服务器会根据这个描述(即模式)对查询进行验证并执行。
类型语言
GraphQL 并不依赖 Python 或 JavaScript 等特定编程语言的语法来描述其模式。相反,GraphQL 定义了自己的一套语言。我们可以使用 GraphQL 模式定义语言(Schema Language),它与查询语言类似,能够让开发者以与编程语言无关的方式讨论和定义 GraphQL 模式。