1
我有一個Spring Boot應用程序正在運行。請求/響應發送protobuf(Protobuf3)編碼。處理空請求體(protobuf3編碼)
我(簡體)REST控制器:
@RestController
public class ServiceController {
@RequestMapping(value = "/foo/{userId}", method = RequestMethod.POST)
public void doStuff(@PathVariable int userId, @RequestBody(required = false) Stuff.Request pbRequest) {
// Do stuff
}
}
我(簡體)protobuf3模式:
syntax = "proto3";
message Request {
int32 data = 1;
}
我的配置有可用的內容協商:
@Configuration
public class ProtobufConfig {
@Bean
ProtobufHttpMessageConverter protobufHttpMessageConverter() {
return new ProtobufHttpMessageConverter();
}
}
一切工作只要請求主體設置了一些字節,就像魅力一樣。但是如果只發送默認值,protobuf不會寫入任何字節。只要我有一個請求消息,其中包含data = 0
生成的字節只是空的。在應用程序方面,請求主體是null
,並且不會轉換爲protobuf消息(如果請求正文設置爲required = true
,它甚至會引發異常)。 HTTP輸入消息根本沒有被ProtobufHttpMessageConverter
處理。有辦法處理嗎?