首页 > 解决方案 > REST API 和缓存

问题描述

我有一个名为 Sites 的资源。

我计划有一个端点如下:

/tenant/:tenantId/sites/:siteId

端点将返回一个站点的树,该树将根据从 JWT 令牌中提取的 userId 而有所不同。

  1. 由于它会根据请求它的用户而有所不同,端点是否应该在 URI 中包含 userId- 可以作为查询参数?

  2. 在这种情况下,缓存应该如何工作?

此端点返回的站点树也将根据另一个资源(即用户/组)中的更新而更改

每当站点资源本身发生变化或组发生变化时,是否应该为所有用户丢弃缓存?

我正在使用 API 网关,因此在更新任何资源时需要通过客户端缓存控制标头清除缓存。

标签: amazon-web-servicesapirestcachingmicroservices

解决方案


  1. 由于数据会因请求它的用户而异,因此端点应该在 URI 中包含 userId - 它可能只是一个类似于tenantIdand的路径参数siteId

  2. 可以根据If-modified-since标头进行缓存,以指示数据是否已更改。

If-Modified-Since HTTP 标头指示浏览器首次从服务器下载资源的时间。这有助于确定自上次访问后资源是否已更改。


推荐阅读