请求清除缓存服务器缓存

Request to Clear Caching Server Cache

我正在使用 Flutter 创建一个角色猜谜游戏移动应用程序,并使用 Node.js 和 Express.js 作为后端创建一个 API。移动应用程序应该调用 API 从 MongoDB 数据库中获取所有字符的类别,然后 API returns 将它们发送到移动应用程序(并将它们缓存在方式为 1 天),移动应用程序将这些类别及其数据保存在一个数组中,然后再次调用 API 以从数据库中获取随机字符。

API的代码是这样的:

const express = require('express');

const app = express();

// Get All Categories
app.get('/categories/all', async (request, response) => {
  response.set('Cache-Control', 'public, max-age=86400, s-maxage=86400'); // 86,400 Seconds = 1 Day
  response.send(await mongodbDriver.getAllCategories());
});

// Get One Character Randomly
app.get('/characters/one/random', async (request, response) => {
  response.send(await mongodbDriver.getRandomCharacter());
});

缓存架构应该像 link 中的图像:

https://i.ibb.co/S3wYkhd/Caching-Server-Architecture.jpg

如果有一天我添加了一个新类别,向该类别添加了字符,并且 API 返回了一个带有该新类别的随机字符,但移动应用程序没有关于它的数据,因为它是获取了缓存服务器用旧版本响应的所有类别,而角色的新类别不在获取的类别中。

发生这种情况时,我希望移动应用程序发送请求以从缓存服务器中清除缓存,方法是将请求发送到 Node.js API 和 API调用缓存清除方法,或者直接向缓存服务器发送请求。这样的事情甚至可能吗?

我找到了解决方法 elhamdulillah。如果我担心我可以获得不包含新添加类别的旧版本类别数组,并且我查询了一个随机字符并且该字符与数组中缺少的新类别一起返回。我应该向 API 发出第三次请求以通过 ID 获取类别,然后将其添加到数组中。这样问题就解决了。