REST 是否支持协议缓冲区
Does REST supports protocol buffers
这可能是一个非常笼统的问题,但考虑到 REST 专注于通过单一一致的接口访问命名资源这一事实;它支持协议缓冲区吗?
是的,你完全可以结合 Protobuf 和 REST。
Protbuf 指定了一种编码数据的方式。 REST 指定了一种与资源交互的方式,但不需要对资源主体进行任何特定编码。如果您创建基于 RESTful HTTP 的 API 并使用 Protobuf 对实体主体(HTTP 请求或响应的有效负载部分的技术术语)进行编码,那么您同时使用了 REST 和 Protobuf .
回到未来,有这个Spring REST API with Protocol Buffers教程:
生成相应的Java类使用:
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>
将以下转换器添加到您的@SpringBootApplication:
@Bean
ProtobufHttpMessageConverter protobufHttpMessageConverter() {
return new ProtobufHttpMessageConverter();
}
ProtobufHttpMessageConverter bean 用于将@RequestMapping 注释方法返回的响应转换为协议缓冲区消息。
这里重要的是我们使用的是 Protocol Buffer 特定数据——而不是标准 POJO。
这可能是一个非常笼统的问题,但考虑到 REST 专注于通过单一一致的接口访问命名资源这一事实;它支持协议缓冲区吗?
是的,你完全可以结合 Protobuf 和 REST。
Protbuf 指定了一种编码数据的方式。 REST 指定了一种与资源交互的方式,但不需要对资源主体进行任何特定编码。如果您创建基于 RESTful HTTP 的 API 并使用 Protobuf 对实体主体(HTTP 请求或响应的有效负载部分的技术术语)进行编码,那么您同时使用了 REST 和 Protobuf .
回到未来,有这个Spring REST API with Protocol Buffers教程:
生成相应的Java类使用:
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>
将以下转换器添加到您的@SpringBootApplication:
@Bean
ProtobufHttpMessageConverter protobufHttpMessageConverter() {
return new ProtobufHttpMessageConverter();
}
ProtobufHttpMessageConverter bean 用于将@RequestMapping 注释方法返回的响应转换为协议缓冲区消息。
这里重要的是我们使用的是 Protocol Buffer 特定数据——而不是标准 POJO。