自作アノテーションを作成し、バリデーションをしよう

SpringBootでは沢山のアノテーションが使われますが、アノテーションは自分で作成することができます。

今回は、自作アノテーションを作成して、APIのバリデーション機能を実現しましょう。

サンプルコードはgithubに置いてあります。

1.アノテーションを自作する。

アノテーションを自作するには、アノテーションの付与や実行に関する設定をするinterfaceと、バリデーションを実装するクラスが必要になります。

まず、インターフェースの例です。

インターフェースを自作する場合、

  1. @Interface で宣言する
  2. @Retention でアノテーションが有効になるタイミングを指定する。
  3. @Target でアノテーションの付与対象を指定する。

の三点が必要になります。今回は、@Constraint を付与し、バリデーションのアノテーションとして作成しています。

次に、実装クラスを作成しましょう。

今回のアノテーションでは、バリデーションの対象の値が17出ない場合、バリデーションに引っかかるように作成します。

2. 自作アノテーションをAPIに適応する。

 簡単なAPIを作成しましょう。ここではサンプルコードの例を用います。

 

次は、自作アノテーションを、リクエストBodyの適応したい部分に付与します。

 

3. APIを叩いて、バリデーションの動作を確認する。

以下のような形で、APIを叩いてみましょう。

 

値を17にした場合、APIのレスポンスを正常に受け取れました。

では、値を変えて再度リクエストしてみましょう。

 

今度は400が帰ってきて、エラーメッセージが返ってきました。

無事、バリデーションが有効になっていることが確認できました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です