GraphQL 是一种用于 API 的查询语言,它提供了一种更高效、强大和灵活的方式来获取数据。在 GraphQL 中,对象类型和接口类型是两个非常重要的概念。
对象类型
对象类型是 GraphQL 中最基本的类型之一,用于描述一组相关的字段和它们的返回类型。每个对象类型都有一个唯一的名称,并且可以包含任意数量的字段。
以下是一个简单的对象类型示例:
type User { id: ID! name: String! email: String! }
在上面的示例中,我们定义了一个名为 User
的对象类型,它包含三个字段:id
、name
和 email
。每个字段都有一个返回类型,其中 ID
和 String
是 GraphQL 中的标量类型。
在查询中,我们可以使用对象类型来获取一个或多个字段的值。例如,我们可以使用以下查询来获取用户的名称和电子邮件:
query { user(id: "1") { name email } }
接口类型
接口类型是 GraphQL 中另一个重要的概念,它类似于面向对象编程中的接口。接口类型定义了一组字段,但不提供任何实现。相反,每个实现接口类型的对象类型都需要提供自己的实现。
以下是一个简单的接口类型示例:
// javascriptcn.com 代码示例 interface Node { id: ID! } type User implements Node { id: ID! name: String! email: String! } type Post implements Node { id: ID! title: String! content: String! }
在上面的示例中,我们定义了一个名为 Node
的接口类型,它包含一个名为 id
的字段。我们还定义了两个对象类型:User
和 Post
,它们都实现了 Node
接口类型,并包含自己的字段。
在查询中,我们可以使用接口类型来获取任何实现了该接口类型的对象类型的字段。例如,我们可以使用以下查询来获取所有实现了 Node
接口类型的对象类型的 ID:
query { nodes { id } }
在上面的查询中,我们并没有指定要获取哪个对象类型的 ID,因为我们使用了 Node
接口类型,GraphQL 将返回所有实现了该接口类型的对象类型的 ID。
总结
对象类型和接口类型是 GraphQL 中非常重要的概念。对象类型用于描述一组相关的字段和它们的返回类型,而接口类型用于定义一组字段,但不提供任何实现。了解这些概念可以帮助我们更好地设计和使用 GraphQL API。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6508f93d95b1f8cacd3c44b9