Etag应该在哪里计算?



我怀疑在REST GET调用中应该在哪里生成etag
我的当前流是

  1. initiate GET call

  2. 我从DB获得数据

  3. 将数据库中的数据转换为我的对象

  4. 返回对象到响应

我的疑问是关于etag应该在哪里计算

  1. 立即从DB获取数据后

  2. 或将数据从DB转换为我的对象结构后

  3. 计算响应对象

一般指导是我所寻求的

这个问题的答案取决于您确切的架构需求。一般来说,除非后端业务逻辑需要使用计算ETag,否则只有在数据库层或响应中生成ETag才有意义。

如果你的ETag被数据库系统用来检查冲突,那么最好在那里计算它,这样你就可以把功能放在同一个地方(#1或#2取决于你的转换代码所在的位置)。如果计算ETag只是为了返回给用户,那么在生成响应后计算它是最好的(#3)。

无论哪种情况,您都应该确保在同一阶段计算它并使用它,以避免在数据转换期间使您自己的etag无效。

最新更新