📜  GraphQL-示例(1)

📅  最后修改于: 2023-12-03 14:41:38.008000             🧑  作者: Mango

GraphQL-示例

GraphQL是一种用于API开发的查询语言和运行时。在GraphQL中,客户端可以根据其需要明确地要求所需数据,使得API返回更加准确和可预测的结果。这种方法代替了RESTful API,使得客户端不必在多个请求中获取多余或者不需要的数据。本文将介绍GraphQL的基本概念并提供一些示例代码。

GraphQL基本概念
  • Schema: 定义数据模型和类型以及API的操作方法。
  • Types: GraphQL数据模型中的核心概念。这包括标量(例如Int,String,Boolean),对象(例如User,Post),枚举,接口和联合类型。
  • Query: 用于获取数据的GraphQL语句。
  • Mutation: 用于创建、更新和删除数据的GraphQL语句。
  • Resolver: 用于将查询和操作映射到API的实际函数。
GraphQL示例代码

我们将展示一个非常基本的GraphQL示例,其中包括一个User对象和一个查询该User对象的GraphQL查询。在此示例中,我们将使用GraphQL.js作为GraphQL的实现。

Schema

以下是我们的GraphQL Schema代码片段:

type User {
  id: ID!
  name: String!
  email: String!
}
type Query {
  user(id: ID!): User
}

这定义了我们想要GraphQL API返回的User对象,以及我们的唯一查询。这个查询有一个必填参数ID,并且返回具有ID,名称和电子邮件的User对象。

Resolver

以下是我们的Resolver代码片段:

const users = [
  { id: '1', name: 'John', email: 'john@example.com' },
  { id: '2', name: 'Jane', email: 'jane@example.com' }
]
const resolvers = {
  Query: {
    user: (_, { id }) => users.find(user => user.id === id)
  }
}

这段代码告诉GraphQL如何解决我们的查询。我们假设我们的数据存储在数组中,我们查找数组中具有与提供ID匹配的ID的用户对象。

查询

我们可以使用以下GraphQL查询获取用户数据:

query {
  user(id: "1") {
    name
    email
  }
}

这将返回具有ID为1的用户对象的名称和电子邮件。

总结

GraphQL是一种查询语言和运行时,可以帮助开发人员构建更加准确和可预测的API。在本文中,我们介绍了GraphQL的基本概念,并提供了一个简单的示例代码来演示如何构建GraphQL API。