Sie könnten jeden Caching-Mechanismus anwendbar für Standard-Java zusammen mit Jersey verwenden, wie Ehcache.
Sie müssen nur darauf achten, dass sich Ihre Daten im Backend nicht geändert haben.
Hier ist einfaches Beispiel mit Ehcache
:
@GET
@Path("{id}")
public List<Data> getData(@PathParam("id") Long id) {
Element element = CacheManager.getInstance().getCache("test").get(id);
if(element == null) {
Data value = fetchElementFromBackend(id);
CacheManager.getInstance().getCache("test").put(new Element(id, value));
return value;
}
return element.getObjectValue();
}
Würde u erklären dagegen, warum u Cache-Control (no-cache) deaktivieren? Es ist wie zu sagen: sry kein Caching möglich, aber sieh hier habe ich einen nutzlosen Etag und Last-Modified-Header. – Orri
es ist zu sagen, es ist für immer im Cache gespeichert, aber der Server kann sagen, ob die Ressource basierend auf E-Tag geändert wird, daher Client/Browser kann es aus dem Cache verwenden – TheWhiteRabbit