前言
GraphQL 是一种由 Facebook 开源的数据查询和操作语言,可以帮助开发者更高效地构建 API。而 Fastify 是一个快速、低开销、可扩展的 Node.js Web 框架,它的设计目标是为了提供最佳的性能和开发体验。本文将介绍如何在 Fastify 中使用 GraphQL。
安装
首先,我们需要安装 Fastify 和相关的 GraphQL 插件。可以使用 npm 或 yarn 进行安装:
--- ------- ------- ----------- ------- - -- ---- --- ------- ----------- -------
创建 Fastify 应用
接下来,我们需要创建一个 Fastify 应用,并注册 fastify-gql
插件:
----- ------- - -------------------- ----- - --------------- --------------- - - ---------------------- ----- - -------------------- - - -------------------------------- ----- -------- - - ---- ----- - ------ ------ - - ----- --------- - - ------ - ------ -- -- ------ --------- - - ----- ------ - ---------------------- --------- --------- -- -------------------------------- - ------- ----- ---------- -- --------------------------------- - ------------ ----------- ----- ----------- -- -------------------- ----- -------- -- - -- ----- - ------------------ --------------- - ------------------- --------- -- ------------ --
在上面的代码中,我们使用 makeExecutableSchema
函数创建了一个简单的 GraphQL schema,并将其作为参数传递给 graphqlFastify
插件。同时,我们也注册了 graphiqlFastify
插件,用于在浏览器中查看 GraphQL schema。
现在,我们可以启动 Fastify 应用,并在浏览器中访问 http://localhost:3000/graphiql
,查看 GraphQL schema。
查询数据
接下来,我们将添加一个新的查询,用于获取一个数字的平方。在 typeDefs
中添加以下内容:
---- ----- - ------ ------ -------------- ------ --- -
在 resolvers
中添加以下内容:
----- --------- - - ------ - ------ -- -- ------ ---------- ------- -------- - ------ -- -- ------ - ------ - -
现在,我们可以在 GraphiQL 中尝试执行以下查询:
----- - -------------- -- -
执行结果应该是:
- ------- - --------- -- - -
修改数据
除了查询数据外,GraphQL 还支持修改数据。我们可以在 typeDefs
中添加一个 mutation,用于修改一个数字的值:
---- -------- - ----------------- ------ --- -
在 resolvers
中添加以下内容:
----- --------- - - ------ - ------ -- -- ------ ---------- ------- -------- - ------ -- -- ------ - ------ -- --------- - ---------- -------- - ------ -- -------- -- - -------------- - ------ ------ ------ - - -
在上面的代码中,我们使用了 context
参数,它是一个对象,可以用于在不同的 resolver 之间共享数据。我们将 number
存储在 context
中,并在 resolver 中返回它。
现在,我们可以在 GraphiQL 中尝试执行以下 mutation:
-------- - ----------------- --- -
执行结果应该是:
- ------- - ------------ -- - -
此时,context.number
的值应该是 10
。
结论
本文介绍了如何在 Fastify 中使用 GraphQL,包括查询数据和修改数据。使用 GraphQL 可以帮助我们更高效地构建 API,同时 Fastify 的高性能和开发体验也能为我们提供良好的支持。希望本文对你有所帮助!
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/672545162e7021665e179357