在当今的 Web 开发中,API 是非常重要的一部分。API 可以使得前端可以和后端进行数据的交换和通信,而且随着 Web 应用的不断发展,API 也不断在改进和完善。本文将介绍如何使用 Express.js 和 GraphQL 构建 API 的最佳实践,并附上代码示例。
什么是 Express.js 和 GraphQL
Express.js 是一个强大的 Web 应用框架,它基于 Node.js 平台,并且可以快速构建具有可扩展性的 Web 应用程序。而 GraphQL,它是一种用于 API 开发的查询语言和运行时,可以更好地满足复杂应用程序的需求。
Express.js 和 GraphQL 之间的协作让我们可以构建出高性能、可扩展、易于维护和灵活的 API。
使用 Express.js 构建 API
由于 Express.js 的流行,它已经成为了开发 Web 应用的首选框架之一。其主要优点之一是可扩展性和灵活性,可以轻松地构建出具有复杂功能的 Web 应用程序。
下面是一个简单的 Express.js API 实现示例:
----- ------- - ------------------- ----- --- - ---------- ----- ---- - ----- ------------------------ ------------ ----- ---- -- - --------------- --------- --- ---------------- -- -- - -------------------- --- --------- -- --------------------------- ---
在这里,我们首先使用 require 引入了 Express.js,然后在创建一个 Express 应用程序的实例,并监听端口。在这里,我们使用 app.get('/') 来处理 HTTP GET 请求,并返回一个字符串响应。
使用 GraphQL 构建 API
GraphQL 是一种用于 API 开发的查询语言和运行时,它是由 Facebook 开发并开源的,旨在为应用程序开发提供更好的查询和多字段数据获取支持。
下面是一个简单的 GraphQL API 实现示例:
----- ------- - ------------------- ----- - ----------- - - --------------------------- ----- - ----------- - - ------------------- ----- ------ - ------------- ---- ----- - ------ ------ - --- ----- ---- - - ------ -- -- ------ ------- -- ----- --- - ---------- ------------------- ------------- ------- ------- ---------- ----- --------- ----- ---- ---------------- -- -- - -------------------- - ------- --- ------ -- -------------------------------- ---
在这里,首先我们定义了一个 GraphQL schema,包含了一个 hello 字段。接着,我们创建了一个 root 对象,用于定义字段的实现。最后,我们将构建好的 schema 和 root 对象传递给 graphqlHTTP,以便创建出 GraphQL API 服务器。
结合使用 Express.js 和 GraphQL
我们已经分别实现了 Express.js 和 GraphQL 的 API 示例,下面我们将讨论如何结合使用这两种工具,构建出高性能、可扩展和可维护的 API。
安装相关库
首先,我们需要安装一些 npm 库:
--- ------- ------ ------- --------------- -------
实现 Express-GraphQL
下面是基于 Express.js 和 GraphQL 的实际示例,我们将使用 Express.js 来构建 HTTP API,然后使用 GraphQL 来在我们的 API 中实现查询。
----- ------- - ------------------- ----- - ----------- - - --------------------------- ----- - ----------- - - ------------------- ----- --- - ---------- -- -- ------ ----- ------ - ------------- ---- ----- - ------ ------ - --- -- -- --------- ----- ---- - - ------ -- -- ------ ------- -- ------------------- ------------- ------- ------- ---------- ----- --------- ----- ---- -- ---- ----- ---- - ---------------- -- ----- ---------------- -- -- - -------------------- ------ -- -- --- ------- -- ---------- ---
在这个示例中,我们在 app.use() 中定义了一个 GraphQL 中间件,用于处理所有 /graphql 请求。我们使用 graphqlHTTP() 作为 GraphQL 服务器,并传递 schema 和 root 参数。
查询数据
我们的 GraphQL API 现在已经可以正常工作了,接下来我们将尝试使用 GraphQL 查询数据。
在浏览器上打开 http://localhost:3000/graphql,可以看到一个强大的 GraphiQL 工具,它提供了探索 API 和运行查询的良好体验。然后在左侧的编辑器中输入以下查询:
- ----- -
然后按下运行按钮,您应该可以在右侧的结果窗格中看到:
- ------- - -------- ------ ------- - -
这就完成了我们的第一个 GraphQL 查询。
结论
Express.js 和 GraphQL 都是非常流行的 Web 技术,并且可以谓得上是 Node.js 开发的金标准。结合使用这两种技术可以构建出高性能和可扩展的 API。本文介绍了使用 Express.js 和 GraphQL 的最佳实践,并给出了实际代码示例,希望能够帮助你快速入门这两种技术,也为你日后的 Web 开发提供一些指导。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/67383f0d317fbffedf0f17c5