java - 如何使用 Jersey 缓存响应?

标签 java rest jersey

我正在尝试使用 Jersey 开发 RESTful API。我有 GET API 用于特定的获取操作,我的 GET 从同一客户端获取相同的时间。 是否可以缓存响应?感谢任何指点。

谢谢

最佳答案

您可以使用 CacheControl、eTag - 按照下面的示例代码

// In your jersey method
    final EntityTag eTag = new EntityTag(resource.getId() + "_" +
     resource.getLastModified().getTime());
    final CacheControl cacheControl = new CacheControl();
    cacheControl.setMaxAge(-1);

    ResponseBuilder builder = request.evaluatePreconditions(
         resource.getLastModified(), eTag);

    // the resoruce's information was modified, return it
    if (builder == null) {
         builder = Response.ok(resource);
    }

    // the resource's information was not modified, return a 304

    return builder.cacheControl(cacheControl).lastModified(
         resource.getLastModified()).tag(eTag).build();

resource 替换为您的 Resource 实例。

关于java - 如何使用 Jersey 缓存响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15087831/

相关文章:

java - 当 JTextField 在 Netbeans 中获得焦点时如何更改 JTextField 周围的蓝色突出显示颜色

java - BigInteger.intValue()>1 给出错误的 boolean 值

api - RESTful API - 在请求中传递虚假/未请求的参数时的正确行为

具有两个独立主键的实体的 RESTful API 行为

rest - 如何创建有意义的 REST 响应消息?

java - JerseyServlet 在服务器启动时初始化资源

java - 如何更改另一个线程中 JLabel 的图像

java - 对 Java Web 服务框架的建议

rest - 以RESTful方式重新排序商品

Java Servlet、JAX-RS - 在基于表单的身份验证工作时遇到问题