GraphQL 是一种用于 API 的查询语言,它提供了一种更加高效、强大和灵活的方式来获取数据。与传统的 RESTful API 相比,GraphQL 具有更好的灵活性和可扩展性。在 GraphQL 中,我们可以通过定义不同的查询模式来获取不同类型的数据。在本文中,我们将介绍如何在 GraphQL 中实现不同模式的数据读取。
查询模式
在 GraphQL 中,我们可以定义不同的查询模式来获取不同类型的数据。GraphQL 支持以下几种查询模式:
- Query:用于获取数据的查询模式。
- Mutation:用于修改数据的查询模式。
- Subscription:用于订阅数据的查询模式。
Query
Query 是 GraphQL 中最基本的查询模式,它用于获取数据。在 GraphQL 中,我们可以使用 Query 来获取任何类型的数据。下面是一个使用 Query 获取数据的示例:
query { user(id: 1) { id name email } }
在上面的示例中,我们使用 Query 获取了一个用户的信息。我们传入了一个参数 id,表示我们要获取的用户的 ID。然后我们返回了用户的 ID、姓名和电子邮件地址。
Mutation
Mutation 是 GraphQL 中用于修改数据的查询模式。Mutation 可以用于添加、更新或删除数据。下面是一个使用 Mutation 更新数据的示例:
mutation { updateUser(id: 1, name: "John") { id name email } }
在上面的示例中,我们使用 Mutation 更新了一个用户的信息。我们传入了两个参数 id 和 name,表示我们要更新的用户的 ID 和新的姓名。然后我们返回了用户的 ID、姓名和电子邮件地址。
Subscription
Subscription 是 GraphQL 中用于订阅数据的查询模式。Subscription 可以用于实时获取数据。下面是一个使用 Subscription 订阅数据的示例:
subscription { newPost { id title content } }
在上面的示例中,我们使用 Subscription 订阅了一个新的帖子。每当有新的帖子发布时,我们将收到一个包含帖子 ID、标题和内容的响应。
总结
在本文中,我们介绍了 GraphQL 中的三种查询模式:Query、Mutation 和 Subscription。通过定义不同的查询模式,我们可以获取不同类型的数据。GraphQL 提供了一种更加高效、强大和灵活的方式来获取数据,它具有更好的灵活性和可扩展性。如果您正在寻找一种更好的方式来获取数据,那么 GraphQL 是一个不错的选择。
示例代码
下面是一个使用 GraphQL 获取用户信息的示例代码:
const { graphql, buildSchema } = require('graphql'); const schema = buildSchema(` type Query { user(id: Int!): User } type User { id: Int name: String email: String } `); const users = [ { id: 1, name: 'John', email: 'john@example.com', }, { id: 2, name: 'Jane', email: 'jane@example.com', }, ]; const root = { user: ({ id }) => users.find(user => user.id === id), }; const query = ` query { user(id: 1) { id name email } } `; graphql(schema, query, root).then(response => { console.log(response); });
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65bbfc20add4f0e0ff4ba907