在前端开发中,我们经常需要搭建服务器来提供 API 服务。而随着 GraphQL 的发展,越来越多的开发者开始使用 GraphQL 来构建 API 服务器。Node.js 作为一个轻量级的 JavaScript 运行环境,可以很好的用来构建 GraphQL API 服务器。在本文中,我们将讨论如何使用 Node.js 快速构建 GraphQL API 服务器,并提供示例代码来帮助你快速上手。
什么是 GraphQL?
GraphQL 是一种更高效、强大和灵活的数据查询语言,用于替代 REST API。它由 Facebook 开发,并于 2015 年面向公众发布。GraphQL 具有以下优点:
适用于任意类型的数据:GraphQL 可以查询任意类型的数据,因此不像 REST API 需要为每个资源定义一个端点。
批量查询:GraphQL 允许一次查询多个资源,并且可以在单个请求中检索您所需要的所有数据。
灵活性:GraphQL 允许查询者指定需要哪些字段,并允许嵌套查询。
没有多余的数据:GraphQL 可以确保仅返回请求的字段,而不是整个对象。
开始构建 GraphQL API 服务器
Node.js 提供了一个名为 Express.js 的 Web 框架,它可以用来构建 RESTful API 服务。但要使用 GraphQL 构建 API 服务器,我们需要使用另一个名为 express-graphql 的 npm 包。它将我们的 GraphQL API 映射到我们的 Express.js 应用程序中。
以下是构建 Express.js 应用程序所需的步骤:
步骤 1:安装 express 和 express-graphql
使用以下命令在你的项目中安装 express 和 express-graphql:
npm install express express-graphql graphql --save
步骤 2:创建服务器
创建一个名为 server.js 的 JavaScript 文件,并在其中编写以下代码:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- - ----------- - - --------------------------- ----- - ----------- - - ------------------- -- -- ------ ----- ------ - ------------- ---- ----- - -------- ------ - --- -- -- -------- ----- ---- - - -------- -- -- ------ ------- -- -- -- ------- ---- ----- --- - ---------- -- -- ------- --- -- ------------------- ------------- ------- ------- ---------- ----- --------- ----- ---- -- ----- ---------------- -- -- ---------------- ------ -- ---------------------------------
在上述代码中,我们首先使用 buildSchema
函数定义一个名为 message
的 GraphQL 查询。然后,我们定义了 root
对象,它包含我们查询的实际代码,即在此示例中,我们只是返回了一个字符串 "Hello World!"
。接下来,我们创建一个 Express.js 应用程序,并将 graphqlHTTP
中间件挂载到称为 “/graphql” 的路径上,这是我们将处理 GraphQL 查询和变异的地方。graphqlHTTP
中间件需要传递一个 schema
对象和一个 rootValue
对象作为参数。最后,我们使用 listen
函数启动服务器。
步骤 3:测试 API
我们可以使用 GraphQL Playground 或其他 GraphQL 客户端工具来测试我们的 API。在本例中,我们可以使用 http://localhost:4000/graphql 地址打开 GraphQL Playground,然后在查询编辑器中输入以下查询:
query { message }
点击运行按钮,你将会看到服务器返回的消息 “Hello World!”。
步骤 4:添加其他类型和查询
在上面的示例中,我们只定义了一个简单的字符串类型查询。为了建立一个真正的 GraphQL API,我们需要定义其他类型和查询。例如,我们可以定义一个名为 Person
的类型,它有 name
和 age
两个字段:
-- -------------------- ---- ------- ----- ------ - ------------- ---- ------ - ----- ------ ---- --- - ---- ----- - ------- ------ - --- ----- ---- - - ------- -- -- -- ----- -------- ---- --- --- --
然后我们可以在查询编辑器中编写以下查询来检索 Person
数据:
query { person { name age } }
这将返回一个带有 name
和 age
字段的 Person
对象。
你还可以添加变异、参数、枚举类型等。请查看官方文档以了解更多详情。
总结
本文介绍了如何使用 Node.js 快速构建 GraphQL API 服务器,详细说明了创建服务器所需的步骤,并提供了示例代码来帮助我们快速上手。使用 GraphQL 构建服务器可以让前端开发人员更加高效和灵活地从后端服务中检索和修改数据,值得我们深入学习。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6493fee748841e989418c9d6