前言
GraphQL 是一种用于 API 的查询语言和运行时环境,它使得客户端能够准确地获得它所需的数据,而且不多不少。Fastify 是一个快速、低开销并且可扩展的 Node.js Web 框架,它支持异步请求处理,并且可以处理高并发的请求。
在本文中,我们将介绍如何使用 Fastify 和 Apollo Server 集成 GraphQL,并且提供示例代码,让你能够快速开始使用。
安装 Fastify 和 Apollo Server
在开始集成 GraphQL 之前,我们需要安装 Fastify 和 Apollo Server。你可以使用以下命令安装它们:
--- ------- ------- --------------------- -------
集成 Apollo Server
接下来,我们需要创建一个 Fastify 应用,并将 Apollo Server 集成到它里面。在这个示例中,我们将创建一个简单的 GraphQL 查询,来获取一个名为 “hello” 的字符串。
----- ------- - -------------------- ------- ---- -- ----- - ------------- --- - - -------------------------------- ----- -------- - ---- ---- ----- - ------ ------ - - ----- --------- - - ------ - ------ -- -- ------ ------- - - ----- ------ - --- -------------- --------- --------- -- ---------------------------------------- -------------------- ----- -------- -- - -- ----- - ---------------------- --------------- - ------------------------ --------- -- ------------ --
在上面的代码中,我们定义了一个 GraphQL 查询,它将返回一个字符串 “Hello world!”。然后,我们创建一个 ApolloServer 实例,并将它的 createHandler() 方法注册到 Fastify 应用中。
现在,我们可以运行应用,并在浏览器中访问 GraphQL Playground,来测试我们的查询。
---- --------
在浏览器中打开 http://localhost:3000/graphql
,你应该能够看到 GraphQL Playground,在这里你可以测试你的查询。
使用数据源
在现实世界的应用中,我们通常需要从数据库或其他数据源中获取数据,并将它们返回给客户端。在 GraphQL 中,我们可以使用数据源来管理数据的获取和返回。
在下面的示例中,我们将使用一个简单的数据源,它将返回一个包含用户信息的数组。我们将使用 Apollo Server 的数据源 API,并将数据源注入到 resolvers 中。
----- ------- - -------------------- ------- ---- -- ----- - ------------- --- - - -------------------------------- ----- ----- - - - --- ---- ----- -------- ---- -- -- - --- ---- ----- ------ ---- -- -- - --- ---- ----- ---------- ---- -- - - ----- ------- - ---------- - ------ ----- - - ----- -------- - ---- ---- ----- - ------ ------ - ---- ---- - --- --- ----- ------- ---- ---- - - ----- --------- - - ------ - ------ --- --- - ----------- -- -- ------------------------------ - - ----- ------ - --- -------------- --------- ---------- ------------ -- -- -- -------- --- --------- -- -- ---------------------------------------- -------------------- ----- -------- -- - -- ----- - ---------------------- --------------- - ------------------------ --------- -- ------------ --
在上面的代码中,我们定义了一个 UserAPI 类,它包含了一个 getUsers() 方法,它将返回一个包含用户信息的数组。然后,我们将这个数据源注入到 resolvers 中,并在 users 查询中使用它。
现在,我们可以运行应用,并在浏览器中访问 GraphQL Playground,来测试我们的查询。
---- --------
在浏览器中打开 http://localhost:3000/graphql
,你应该能够看到 GraphQL Playground,在这里你可以测试你的查询。
结论
在本文中,我们介绍了如何使用 Fastify 和 Apollo Server 集成 GraphQL,并且提供了示例代码,让你能够快速开始使用。我们还演示了如何使用数据源来管理数据的获取和返回。希望这篇文章能够对你有所帮助,让你能够更好地理解如何使用 Fastify 和 Apollo Server 实现 GraphQL。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/673daf0790e7ed93bedfdf2e