GraphQL 中的接口(Interface)详解

阅读时长 3 分钟读完

GraphQL 是一种现代的 API 设计语言,它简化了前端和后端之间的数据交互以及开发和维护 API 的工作量。其中接口(Interface)是其核心特性之一,本文详细介绍 GraphQL 中的接口以及如何使用它们。

接口的定义

在 GraphQL 中,接口是一种定义类型的方式,这些类型具有相同的字段和特性。在 GraphQL 的 Schema 中,可以用 interface 关键字定义一个接口,并定义一个或多个字段。例如:

这个 Person 接口有 idnameage 三个字段,其中 idname 是必需的,age 是可选的。

定义了接口后,还需要根据接口定义实现类型。比如,假设我们要实现一个 User 类型,来表示一个网站的注册用户。我们可以这样定义:

这个 User 类型实现了 Person 接口,因此必须有 idname 两个必需字段,以及 age 可选字段。此外,它还有一个额外的 email 字段。

接口的使用

接口的使用在 GraphQL 查询中非常方便。假设我们有一个查询,要同时查询出多个 Person 型的对象:

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

在查询结果中,我们可以看到 idnameage 字段,以及 email 字段,如果实现了 Person 接口的类型中有 email 字段时,会返回它。

这样,我们就可以利用接口的特性,轻松地查询多个类型的对象,并获取它们共同的字段和特性,避免了反复书写相同的代码。

示例代码

下面是一个完整的 GraphQL Schema 和查询的示例代码:

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

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

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

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

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

总结

接口是 GraphQL 的一个重要特性,可以帮助我们定义和查询多个类型的对象,并获取它们共同的字段和特性。在实现 GraphQL API 时,接口的使用可以提高代码的复用性和可读性,值得我们深入学习和掌握。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64d4aa9ab5eee0b525c6b82a

纠错
反馈