node-red - API 响应缓存
node-red - API response caching
我正在用 Node-RED 中的 http in
节点编写一个 API。对于某些路径的 GET
请求,我想缓存响应,这样就不会进一步执行流程。我遇到了两个 Node-RED 包 cache and global-cache。但是,他们似乎没有缓存 API 响应。
如何在 node-red 中缓存 API 响应?
node-red-contrib-cache
不会自动缓存响应,但您可以像这样自己创建此逻辑:
首先你需要设置msg.topic
作为缓存键。这里我用了msg.req.url
表达式:
接下来您需要输入 Cache 节点,它将尝试从缓存中获取响应。它将传播 msg.payload
,如果在缓存中未找到任何内容,它将传播 return null
.
这是您使用 Switch 节点分支的地方:
如果它是 null
,您转到将创建响应的节点(在本例中是一个函数),然后使用输出 Cache 节点存储它稍后将其发送到 http response 节点。
如果不是 null
直接将其传递给 http 响应 节点。
您可能需要调整缓存键和 TTL。
我正在用 Node-RED 中的 http in
节点编写一个 API。对于某些路径的 GET
请求,我想缓存响应,这样就不会进一步执行流程。我遇到了两个 Node-RED 包 cache and global-cache。但是,他们似乎没有缓存 API 响应。
如何在 node-red 中缓存 API 响应?
node-red-contrib-cache
不会自动缓存响应,但您可以像这样自己创建此逻辑:
首先你需要设置msg.topic
作为缓存键。这里我用了msg.req.url
表达式:
接下来您需要输入 Cache 节点,它将尝试从缓存中获取响应。它将传播 msg.payload
,如果在缓存中未找到任何内容,它将传播 return null
.
这是您使用 Switch 节点分支的地方:
如果它是 null
,您转到将创建响应的节点(在本例中是一个函数),然后使用输出 Cache 节点存储它稍后将其发送到 http response 节点。
如果不是 null
直接将其传递给 http 响应 节点。
您可能需要调整缓存键和 TTL。