这可能是一个非常通用的问题,但考虑到REST侧重于通过单一一致的接口访问命名资源;REST支持协议缓冲区吗?
这可能是一个非常通用的问题,但考虑到REST侧重于通过单一一致的接口访问命名资源;REST支持协议缓冲区吗?
是的,您完全可以结合使用Protobuf和REST。
Protobuf指定了一种编码数据的方式。 REST指定与资源交互的方式,但不需要特定的资源主体编码。如果您创建一个RESTful基于HTTP的API,并使用Protobuf来编码实体正文(HTTP请求或响应的有效负载部分的技术术语),那么您同时使用了REST和Protobuf。
protoc --java_out=java resources/baeldung.proto
在您的Maven POM文件中添加以下依赖项:<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>3.0.0-beta-3</version>
</dependency>
@Bean
ProtobufHttpMessageConverter protobufHttpMessageConverter() {
return new ProtobufHttpMessageConverter();
}
ProtobufHttpMessageConverter bean 用于将由 @RequestMapping 注释方法返回的响应转换为协议缓冲区消息。
重要的是,我们正在处理特定于协议缓冲区的数据 - 而不是标准的 POJOs。