REST API 中的 gZip 实现

gZip Implementations in REST APIs

如何在 REST 中使用 gzip 过滤器 API? 另外,假设我想在一个地方实施。有没有办法配置 20 APIs,只有少数 APIs 使用它。

任何文档都会有所帮助。

可以用 WriterInterceptor:

public class GZIPWriterInterceptor implements WriterInterceptor {

    @Override
    public void aroundWriteTo(WriterInterceptorContext context)
                throws IOException, WebApplicationException {
        final OutputStream outputStream = context.getOutputStream();
        context.setOutputStream(new GZIPOutputStream(outputStream));
        context.proceed();
    }
}

然后在你的 ResourceConfig / Application 子类中注册 WriterInterceptor:

@ApplicationPath("/api")
public class MyApplication extends ResourceConfig {

    public MyApplication() {
        register(GZIPWriterInterceptor.class);
    }
}

要将拦截器绑定到某些资源方法或 类,您可以使用 .

有关详细信息,请查看 Jersey documentation about filters and interceptors