java – 用于版本化实体的ETag支持
发布时间:2020-12-15 03:01:57 所属栏目:Java 来源:网络整理
导读:我打算为我的RESTfull Spring应用程序支持ETag.我公开的大多数资源都是在DB中进行版本控制的. 我知道ShallowEtagHeaderFilter,这不是我需要的,因为它只能节省带宽. 是否有一个适用于Spring MVC的生产就绪解决方案,它将ETag标头与暴露的实体版本相关联? 解决
我打算为我的RESTfull
Spring应用程序支持ETag.我公开的大多数资源都是在DB中进行版本控制的.
我知道ShallowEtagHeaderFilter,这不是我需要的,因为它只能节省带宽. 是否有一个适用于Spring MVC的生产就绪解决方案,它将ETag标头与暴露的实体版本相关联? 解决方法
spring-data-rest支持这种开箱即用的功能,参见
the conditional request part of the reference documentation.
您还可以使用Spring Framework 4.2.0,它支持Controller方法返回的ResponseEntity类型的条件请求 – see reference documentation. 就像是: @RequestMapping("/book/{id}") public ResponseEntity<Book> showBook(@PathVariable Long id) { Book book = findBook(id); String version = book.getVersion(); return ResponseEntity .ok() .cacheControl(CacheControl.maxAge(30,TimeUnit.DAYS)) .eTag(version) // lastModified is also available .body(book); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |