はじめに
こんにちは!さいけです。
今回は、タイトルの通りSpringBootでリクエストパラメーターをバリデーションしてみる記事になります。
前提として、本記事では複雑または発展的な内容は含みません!(例えば、バリデーションエラーをハンドリングするとか…)
純粋にリクエストパラメーターが空文字列もしくはnullの場合に、バリデーションエラーが返るようにしてみます。
やってみる
SpringBootでリクエストパラメーターをバリデーションするのは簡単です。
@Validatedと@Validに加えて、BeanValidationアノテーション(@NotNull、@NotBlank、@Size、@Pattern、@Min等)を使えばよいです。
以下、サンプルコードになります。
ValidationController.Java
@RestController
@Validated
public class ValidationController {
@GetMapping(value = "/validation")
public String getPerson(
@Valid @NotBlank @RequestParam("name") String name,
@Valid @NotNull @RequestParam("age") Integer age) {
return "私の名前は" + name + "です。年齢は" + age + "です。";
}
}
解説
- @Validatedでクラスがバリデーションを使えるようにする
- メソッドの引数に@Validを付与すると、その引数はバリデーションされるようになる
- @NotBlankを付与することで、空文字・空白・nullを許容しなくなる
- @NotNullを付与することで、nullのみ許容しなくなる
上記ファイルが作成できたら、アプリケーションを起動して確認しましょう!
以下、リクエストパスは正常なGETをしたケースです。
nameには太郎が入っており、ageは20です。正常に200レスポンスが返ってきます。
次に、バリデーションに引っかかるケースです。
以下のリクエストは、バリデーションに引っかかります。
ageのリクエストパラメーターがnullなので、500エラーが返却されます。
また、エラーの文言で「ageはnullですよ」と怒ってくれています。
nameも空文字にしてあげると、以下のようにnameに関してもちゃんと怒ってくれます。
おわりに
今回はSpringBootでリクエストパラメーターをバリデーションするやり方を紹介しました。
アノテーションで簡単にバリデーションができたと思います。ぜひ参考にしてみてください!
また、今回は深く紹介しませんでしたが、BeanValidationアノテーションは色々あるので、調べてみると面白いと思います。
それでは!( ・∇・)ノシ
コメント