[英]How to validate protobuf messages in a Spring Rest controller in method parameter
假設“ TestTask”是protobuf生成的java類。 我想作為POST請求發送到REST端點。
我的問題是如何驗證“ TestTask”及其字段?
[我的觀點:添加@Validated沒有任何意義,因為內部protobuf java類確實會為空檢查或空檢查生成任何注釋。 ]
[我的觀點:它至少應對對象進行空檢查。 ]
例如,TestTaskComplete processTestTask(@Validated @RequestBody @NotNull TestTask testTask)
[我的觀點:@Validated->添加此名稱沒有意義。 休息看起來不錯]
@RestController
public class TestTaskEndpoint {
@PostMapping(value = "/testTask", consumes = "application/x-protobuf", produces = "application/x-protobuf")
TestTaskComplete processTestTask(@RequestBody TestTask testTask) {
// TestTask is a generated protobuf class
return generateResult(testTask);
}
}
1)。 添加@Validated或@Valid無效,因為GPB中的字段未注釋。 2)。 @notNull不應編譯,因為它不合適。
我認為它起作用的一種方法是使用@initBinder將gpb綁定到POJO並在POJO中添加驗證批注。
假設您創建名為TestTaskModel的POJO,以便可以@Valid @RequestBody TestTaskModel模型)
在這種情況下,我認為您不需要消耗和生產
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.