NestJs 中的 @Header('Cache-Control')

Vyt*_*nas 2 caching browser-cache nestjs

我有一个 NestJS REST api,并注意到 Cache-Control 标头未发送。我不确定我是否错过了 NestJS 的某些内容,但询问 google 如何使用 NestJS 缓存 REST API 获取响应只会引导我找到 NestJs 缓存管理器,该管理器位于内存缓存中的服务器上。所以我有几个问题:

  1. 缓存 REST API 数据响应不是很常见吗
  2. 我应该明确设置 @Header('Cache-Control', '..?')
  3. 也许在客户端缓存更好?(我知道数据有效性 - 数据不会改变我说的是文章)

感谢您的回答

Joh*_*nny 6

是的,您可以使用标头注释来设置它:

https://docs.nestjs.com/controllers#headers

@Get()
@Header('Cache-Control', 'max-age=3600')
get() {
  return 'This action adds a new cat';
}
Run Code Online (Sandbox Code Playgroud)

顺便提一句。在其余定义中,应该是可缓存的,只是不是每个方法: https: //en.wikipedia.org/wiki/Representational_state_transfer#Cacheability