@ResponseBody(私の場合はSomePojoInterface型のクラス)が自動的に検証されます(JSR-303の検証を通じて)。うまくいけば、妥当性検査の失敗の場合、ハンドラはException
を投げ、それは@ControllerAdvice
注釈付きクラスで処理することができます。@RestController:@ResponseBody(@RequestBodyではない)を確認する
これまでのコードです。
@RestController
public class MyRestController {
@GetMapping(value = "validate", produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
protected SomePojo validateResponse() {
return new SomePojo();
}
}
@ControllerAdvice
class GlobalControllerExceptionHandler {
@ResponseStatus(HttpStatus.XXX)
@ExceptionHandler(MyResponseValidationException.class)
public void handleResponseValidationException() {
// ...
}
}
public class SomePojo implements SomePojoInterface {
@NotNull
private String someValue;
// getter/setter
}
いくつかの例で試しましたか?これはhttps://www.petrikainulainen.net/programming/spring-framework/spring-from-the-trenches-adding-validation-to-a-rest-api/のようなものです。 Spring 3.2では@Validアノテーションを追加できます;) – Hrabosch
@Validアノテーションはどこに置くべきですか?私は応答オブジェクトを検証するつもりです。 – user871611
ああ、レスポンスです!次に、バリデータを作成する必要があります。私はアンサーを投稿します – Hrabosch