GraphQL Schema 的简介及如何定义

GraphQL 是一种由 Facebook 开发的数据查询和操作语言,它提供了一种更高效、更灵活的方式来定义和查询 API。在 GraphQL 中,Schema 是一个非常重要的概念,它描述了 API 中可用的数据类型和查询操作。

GraphQL Schema 的定义

GraphQL Schema 由两个主要部分组成:Type 和 Query。Type 定义了 API 中可用的数据类型,而 Query 则定义了可用的查询操作。

Type

在 GraphQL 中,Type 是定义数据类型的基本单位。Type 可以是标量类型(如 String、Int、Boolean 等)或自定义类型(如 Object、Enum、Interface 等)。下面是一个自定义类型的例子:

---- ------ -
  --- ---
  ----- -------
  ---- ---
  -------- --------
-

在这个例子中,我们定义了一个名为 Person 的类型,它有四个字段:id、name、age 和 friends。其中,id 和 name 是必需的字段,而 age 和 friends 是可选的字段。friends 字段是一个列表类型,它包含多个 Person 类型的对象。

Query

在 GraphQL 中,Query 定义了可用的查询操作。每个查询操作都有一个名称和一个返回类型。下面是一个查询操作的例子:

---- ----- -
  ---------- ----- ------
-

在这个例子中,我们定义了一个名为 person 的查询操作,它接受一个 ID 参数,并返回一个 Person 类型的对象。

如何定义 GraphQL Schema

要定义 GraphQL Schema,我们需要使用 SDL(Schema Definition Language)。SDL 是一种类似于 JSON 的语言,它允许我们定义 Type 和 Query。下面是一个简单的 SDL 文件:

---- ----- -
  ------ ------
-

------ -
  ------ -----
-

在这个例子中,我们定义了一个名为 hello 的查询操作,它返回一个 String 类型的值。然后,我们使用 schema 关键字指定了 Query 作为我们的根查询操作。

在实际开发中,我们可以使用各种编程语言来定义 GraphQL Schema。例如,使用 JavaScript 和 Apollo Server,我们可以这样定义一个简单的 GraphQL Schema:

----- - --- - - -------------------------

----- -------- - ----
  ---- ----- -
    ------ ------
  -
--

-------------- - ---------

在这个例子中,我们使用 gql 函数来定义 Type 和 Query。然后,我们将 Type 和 Query 导出,以便在 Apollo Server 中使用。

总结

GraphQL Schema 是 GraphQL API 的基础,它定义了可用的数据类型和查询操作。在定义 GraphQL Schema 时,我们需要使用 SDL 或编程语言来定义 Type 和 Query。通过学习 GraphQL Schema,我们可以更好地理解 GraphQL API 的工作原理,并更有效地开发和维护 GraphQL API。

参考资料

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/661265c0d10417a22230b462