GraphQL 是一种用于构建 API 的查询语言,它可以帮助我们更高效地获取需要的数据,而不是像传统的 RESTful API 一样返回整个资源。GraphQL 在前端开发中越来越受欢迎,但是,如何管理 GraphQL API 却是一个值得探讨的话题。
在本文中,我们将介绍如何使用 GraphQL 来管理 GraphQL API,包括如何定义 schema 和 resolver,以及如何使用 Apollo Server 和 Apollo Client 来构建和调用 GraphQL API。
定义 Schema 和 Resolver
在使用 GraphQL 时,首先需要定义 schema 和 resolver。Schema 定义了 API 的类型和查询,而 Resolver 则定义了如何获取数据。
定义 Schema
Schema 是 GraphQL API 的核心,它定义了 API 的类型和查询。在定义 Schema 时,我们需要定义类型和字段。例如,下面是一个简单的 Schema 示例:
-- -------------------- ---- ------- ---- ---- - --- --- ----- ------- ------ ------- - ---- ----- - ----------- ----- ---- -
在上面的示例中,我们定义了一个 User 类型和一个 Query 类型。User 类型包含 id、name 和 email 三个字段,而 Query 类型包含一个 getUser 查询,该查询接受一个 id 参数,并返回一个 User 对象。
定义 Resolver
Resolver 定义了如何获取数据。在上面的示例中,我们定义了一个 getUser 查询,但是我们还需要定义如何获取用户数据。
在使用 GraphQL 时,我们可以使用任何后端技术来获取数据,例如数据库、RESTful API 或其他服务。我们只需要定义一个 Resolver 来告诉 GraphQL 如何获取数据。例如,下面是一个简单的 Resolver 示例:
const resolvers = { Query: { getUser: (parent, { id }, context) => { return getUserById(id); }, }, };
在上面的示例中,我们定义了一个 getUser Resolver,它接受一个 id 参数,并调用 getUserById 函数来获取用户数据。
使用 Apollo Server 构建 GraphQL API
在定义了 Schema 和 Resolver 后,我们可以使用任何 GraphQL 服务器来构建 API。在本文中,我们将使用 Apollo Server。
安装 Apollo Server
首先,我们需要安装 Apollo Server。可以使用以下命令来安装:
npm install apollo-server
创建 Apollo Server
在安装了 Apollo Server 后,我们可以创建一个 Apollo Server 实例。例如,下面是一个简单的示例:
const { ApolloServer } = require('apollo-server'); const server = new ApolloServer({ typeDefs: schema, resolvers, });
在上面的示例中,我们创建了一个 Apollo Server 实例,并传递了 Schema 和 Resolver。
启动 Apollo Server
在创建了 Apollo Server 实例后,我们需要启动它。可以使用以下命令来启动:
server.listen().then(({ url }) => { console.log(`🚀 Server ready at ${url}`); });
在上面的示例中,我们启动了 Apollo Server,并在控制台打印了 URL。
使用 Apollo Client 调用 GraphQL API
在构建了 GraphQL API 后,我们可以使用任何客户端来调用 API。在本文中,我们将使用 Apollo Client。
安装 Apollo Client
首先,我们需要安装 Apollo Client。可以使用以下命令来安装:
npm install apollo-boost graphql
创建 Apollo Client
在安装了 Apollo Client 后,我们可以创建一个 Apollo Client 实例。例如,下面是一个简单的示例:
import ApolloClient from 'apollo-boost'; const client = new ApolloClient({ uri: 'http://localhost:4000', });
在上面的示例中,我们创建了一个 Apollo Client 实例,并传递了 API 的 URL。
发送查询
在创建了 Apollo Client 实例后,我们可以发送查询。例如,下面是一个简单的查询示例:
-- -------------------- ---- ------- ------ --- ---- -------------- ----- -------- - ---- ----- ------------ ---- - ----------- ---- - -- ---- ----- - - -- ------ -------- ------ --------- ---------- - --- - -- -- -------------- -- ---------------------
在上面的示例中,我们发送了一个名为 GET_USER 的查询,并传递了一个 id 参数。查询返回了一个包含 id、name 和 email 字段的 User 对象。
总结
在本文中,我们介绍了如何使用 GraphQL 来管理 GraphQL API,包括如何定义 schema 和 resolver,以及如何使用 Apollo Server 和 Apollo Client 来构建和调用 GraphQL API。我们希望本文可以帮助你更好地理解和使用 GraphQL。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/66038aa1d10417a222ff6dce