RESTEasy - 启用 Gzip 压缩内容编码

位置:首页>文章>详情   分类: Java教程 > 编程技术   阅读(264)   2023-06-26 07:54:18

JAX-RS Resteasy 具有自动 GZIP 解压支持。如果客户端框架 或 JAX-RS 服务收到内容编码为“gzip”的消息正文,它会自动解压缩它。客户端框架自动将 Accept-Encoding 标头设置为“gzip, deflate”。所以你不必自己设置这个标题。

要使用 gzip 压缩,请使用 @GZIP 注释如下。

//Output compression
	@GET
	@Path("/users")
	@GZIP
	@Produces("application/xml")
	public Users getAllUsers() 
	{
		//more code....
	}
	
	//OR
	
	//Input compression
	@POST
	@Path("/users")
	@Consumes("application/vnd.com.demo.user-management.user+xml;charset=UTF-8;version=1")
	public Response createUser(@GZIP User user,
			@DefaultValue("false") @QueryParam("allow-admin") boolean allowAdmin)
			throws URISyntaxException 
	{
		//More code...
	}

示例用法

示例 API 输出没有 gzip 压缩,当调用上面的 GET REST API 时,将如下所示:

Date: Sat, 03 Aug 2013 06:18:41 GMT
	Server: Apache-Coyote/1.1
	Content-Length: 277
	Content-Type: application/vnd.com.demo.user-management.users+xml;version="1";charset=UTF-8
RESTEasy example without gzip compression

API 输出示例 使用@GZIP 注释进行 gzip 压缩

Date: Sat, 03 Aug 2013 06:31:21 GMT
Content-Encoding: gzip
Server: Apache-Coyote/1.1
Content-Length: 165
Content-Type: application/vnd.com.demo.user-management.users+xml;version="1";charset=UTF-8
RESTEasy example with gzip compression

给我评论,帖子中有一些不清楚的地方。

快乐学习!!

地址:https://www.cundage.com/article/enable-gzip-compression-content-encoding-in-resteasy.html

相关阅读

JAX-RS Resteasy 具有自动 GZIP 解压支持。如果客户端框架 或 JAX-RS 服务收到内容编码为“gzip”的消息正文,它会自动解压缩它。客户端框架自动将 Accept-Enc...
学习使用 resteasy ExceptionMapper 接口实现来创建和处理自定义异常。 ExceptionMapper 是将 Java 异常 映射到 Response 对象的提供者的合同。...
Bean 验证 API (JSR-303) 定义用于基于注释的 bean 验证的元数据模型和 API。该功能是通过 resteasy-hibernatevalidator-provider 组件...
到目前为止,在本博客中,我们一直在学习如何构建作为服务器端组件的RESTful 网络服务。在这篇文章中,我们将学习构建一个 RESTful 客户端来使用之前文章中编写的 Web 服务。 我将重新...
安全性是任何企业应用程序不可或缺的一部分。安全涉及两个阶段,即身份验证和授权。 身份验证验证您是谁。授权验证您有权做什么。在本文中,我们将学习为 REST API 构建基于角色的基本身份验证/授...
学习使用它的 javax.ws.rs.core.链接, javax.ws.rs.core.UriBuilder 和 javax.ws.rs.core.UriInfo 类。 RESTEasy 3....
ETags 或实体标签很有用 HTTP headers 这有助于通过最小化系统上的服务器负载来构建超快速的应用程序。 ETag 设置为对客户端的响应,因此客户端可以使用各种控制请求标头,例如 I...
到目前为止,在本博客中,我们一直在学习如何构建作为服务器端组件的RESTful 网络服务。在这篇文章中,我们将学习构建一个 RESTful 客户端来使用之前文章中编写的 Web 服务。 我将重新...
Representational State Transfer (REST) 是一种设计习惯,它采用网络的无状态客户端-服务器架构将 REST 网络服务表示为由网址。 REST 风格的架构由客户...
在这个例子中,我将展示 ValidatorAdapter 与 @ValidateRequest 注释。为了从 UI 发送请求,我将使用 ajax。如果您的项目需要,您可以使用表单提交。在这种情况...