在现代 web 应用中,API 后端是不可或缺的一部分。传统的 REST API 已经不再满足开发人员的需求,GraphQL 比 REST 更加灵活和强大,拥有很多令人激动的特性,例如 可以减少网络开销、建立强类型数据模型等。本文将会详细介绍如何使用 Fastify 和 GraphQL 构建强大的 API 后端。
Fastify
Fastify 是一种快速且低开销的 web 框架,它使用了类似于 Node.js 的事件循环机制,为你的应用提供了高效的性能。Fastify 还支持异步编程风格(async/await)和丰富的插件系统,帮助你快速地开发 web 应用。
安装 Fastify
使用 npm 安装 Fastify。
npm install fastify
编写基本 Fastify 应用
首先,我们需要新建一个 .js 文件。
-- -------------------- ---- ------- ----- ------- - -------------------- ---------------- ----- --------- ------ -- - ------------ ------ ------- -- -- -------------------- --- -- - -- ----- ----- --- ------------------- --------- -- ---------------------------------- --
接下来使用命令行工具运行文件。
node app.js
你的 Fastify 应用现在启动了,并且可以通过 URL http://localhost:3000
访问。同时你也可以访问 URL http://localhost:3000/documentation
查看手册,这也提供了一个交互式的界面,方便你查看API 的文档。
GraphQL
GraphQL 是一种 API 查询语言,可以用来定义前端应用需要的数据结构。GraphQL 具有强类型系统、支持多语言、减少了冗余数据、有良好的文档支持等众多优点。
安装 GraphQL
使用 npm 安装 GraphQL。
npm install graphql
接下来使用以下代码引入并运行 GraphQL。
-- -------------------- ---- ------- ----- - -------- ----------- - - ------------------- -- -- ------------ ----- ------ - ------------- ---- ----- - ------ ------ - --- -- -- --- ----- ---- - - ------ -- -- ------ -------- -- -- -- --- -- --------------- -- ----- --- --------------------- -- - ---------------------- ---
这个示例代码中定义了一个可查询的 hello
字段。
使用 GraphQL 作为 Fastify 应用的核心
现在我们把 GraphQL 与 Fastify 结合起来,创建一个强大的 API 后端服务器。
首先,我们需要安装两个包,fastify-graphql
和 graphql
.
npm install fastify-graphql graphql
Fastify GraphQL 是一个 Fastify 插件,它将 GraphQL 引入 Fastify 应用程序中。
接下来,我们可以在 Fastify 应用程序中使用 GraphQL。
-- -------------------- ---- ------- ----- ------- - --------------------- ----- - --------------- --------------- - - --------------------------- ----- - ----------- - - ------------------- -- -- ------ ----- ------ - ------------- ---- ----- - ------ ------ - --- -- -- ----- --------- ----- ---- - - ------ -- -- ------ -------- -- -- - ------- -- ------- -- -------------------------------- - ------- ---------- ----- --- -- - -------- -- ------- -- --------------------------------- - ----- ------------ --------- - ------------ ----------- -- --- -- - ---- ------ -------------------- ----- -- - -- ----- ----- ---- ------------------- --------- -- ----------------------------------- ---
现在你运行了一个 GraphQL API,可以在地址 http://localhost:3000/graphql
上进行查询。如果你访问地址 http://localhost:3000/graphiql
,你将会看到一个交互式的 GraphQL Explorer。你可以使用它来测试你的 API,查看查询和响应。
GraphQL 还有很多其他特性,例如,mutate 修改数据、subscription 实时更新等等,这里只是提供了一个简单的入门实例。
结论
本文介绍了使用 Fastify 和 GraphQL 构建API服务器的基本知识。如果你希望构建高性能、可扩展的 APIs,Fastify 和 GraphQL 确实是非常好的选择。了解这些技术,可以让你更灵活地构建强大的 API 后端。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/671f17242e7021665efb8f0e