GraphQL 是一个现代化的 API 查询语言和运行时,它可以从客户端精确地获取需要的数据,而不必在服务端进行过度的处理和传输无效数据。GraphQL 具备极高的灵活性和可扩展性,在前端项目中用得非常广泛。GraphQL 的一个特性是接口类型,本文将详细介绍 GraphQL 的接口类型及其用法。
接口类型的定义
在 GraphQL 中,接口类型是定义了一组字段的抽象类型,这些字段是其相关类型的针对客户端查询的总和。它们为你的应用程序提供了一个强大的工具,以构建可重用的代码块、程序接口、简单的架构演示等。
接口类型定义的语法格式如下:
interface InterfaceName { field1: FieldType1! field2: FieldType2 … }
在 GraphQL 可以有多个类型使用同一个接口类型。
接口类型的用法
使用接口类型有助于让你的大型 GraphQL 数据模型模板更加灵活、简单和整洁。接口类型可以使你在 GraphQL API 的客户端和服务器之间非常容易地相互通信。 在下面的例子中,我们将介绍如何为 Spider-Man, Iron Man, 和 Captain America 创建一个带有 Interface 的人类类型。
-- -------------------- ---- ------- --------- ----- - ----- ------- ---- ---- - ---- --------- ---------- ----- - ----- ------- ---- ---- --------------- ---- - ---- ------- ---------- ----- - ----- ------- ---- ---- ------------- ---- - ---- --- ---------- ----- - ----- ------- ---- ---- --------------- ---- -
在上述代码中,我们创建了一个名为 Human 的接口,该接口定义了两个字段:name 和 age,并告诉 GraphQL 每个实现此接口的类型都必须存在这些字段。接下来,我们分别定义了三个实现了 Human 接口的类型:SpiderMan,IronMan 和 Cap。每个类型都拥有一个 name 和 age 字段,但另外各自添加了一个独特的 strength 字段。
客户端代码使用如下:
-- -------------------- ---- ------- ----- - --------- -- - ---- --- --- -- --------- - -------------- - --- -- ------- - ------------ - --- -- --- - -------------- - - -
在上述客户端代码中,我们将查询参数传递到 human 函数中,以获取对应人类的属性。由于 SpiderMan,IronMan 和 Cap 都实现了 Human 接口,因此我们可以使用 fragment 来访问它们独特的 strength 字段。
总结
以上是 GraphQL 中的接口类型及其用法的详细介绍。接口类型是一个非常强大的功能,它可以使你的代码更加通用、可扩展和整洁。希望本文对你了解 GraphQL 的接口类型和它的用法有一定帮助,加深了对 GraphQL 的理解。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64643999968c7c53b051b018