使用Node.js中的apicache中间件进行API响应缓存
缓存只是指存储数据。缓存API响应是指在特定时间内持有所请求响应的副本,以便更快地检索数据。当客户端请求资源时,请求通过缓存发送到持有该资源的服务器。在请求路径中,如果缓存中存在所请求的资源,则使用该副本而不是从服务器获取数据。缓存的数据作为响应返回。因此,数据被更快地提供,网络性能得到改善。 ****
方法: 通过使用API缓存中间件,我们将从 JSONplaceholder API 获取数据并缓存API响应五分钟。API缓存是一个npm包,使得在express和node.js应用程序中缓存API响应更加容易。响应将在特定时间段内备份,因此如果您请求相同的资源表示,则不会访问API端点,而是从缓存中检索数据。
在以下示例中,我们将观察到数据由于没有访问API端点而被更快地检索。
环境设置: 确保您的本地机器上安装了node.js,并安装了Postman进行API测试。如果您尚未安装它们,请按照以下链接进行安装。
- Node.js: https://nodejs.org/en/download/
- Postman: https://www.postman.com/downloads/
- JSON Viewer Pro Chrome扩展: https://chrome.google.com/webstore/detail/json-viewer-pro/eifflpmocdbdmepbjaopkkhbfmdgijcc 用于将JSON响应可视化为树状结构。
作为Postman的替代方案,您也可以使用https://reqbin.com/进行API测试。
按照以下步骤开始操作。
步骤1: 初始化npm
创建一个新的项目目录并转到您的终端。使用以下命令初始化npm:
步骤2: 安装依赖项。安装以下包:
- express:node.js 框架
- axios:发送HTTP请求
- morgan:记录请求日志
步骤3: 安装用于缓存API响应的中间件。 使用以下命令安装API缓存包。
步骤4: 创建一个app.js文件来编写缓存代码。首先,我们将在app.js文件中导入所有已安装的包,以便在项目中使用它们。然后,我们将配置中间件,即express、Morgan和Apicache,并设置我们的服务器。我们将从JSONplaceholder API获取帖子和用户,并将路由缓存5分钟。
将以下代码添加到 app.js 文件中。
最终项目结构:
运行应用程序的步骤: 要运行Node.js应用程序,请打开终端并输入以下命令。
输出: 默认情况下,应用程序将在3000端口运行。在您的浏览器上,您可以通过localhost:3000访问帖子,通过localhost:3000/users访问用户。
测试响应时间的步骤 使用 Postman 发送 GET 请求到 localhost:3000。
输出结果: 最初,您会看到较长的响应时间。如果您多次发送 GET 请求,您会注意到数据的检索速度比初始响应时间快得多,这是由于响应缓存。当我们首次请求资源时,数据被缓存,并在再次请求时返回缓存的数据,而不是命中 API 端点,从而提高了响应时间。
同样,向 localhost:3000/users 发送一个 GET 请求
输出: 在响应被缓存后,你将注意到数据的获取速度变得更快。