コンテンツにスキップ

バリデーション

フロントエンドのUIで入力された値のバリデーションは、フロントエンド・バックエンドの両方で行います。

バリデーションは次の2つのパターンがあります。

  1. フロントエンドでのバリデーションに加え、バックエンドでも同様のバリデーションを行う
  2. フロントエンドではバリデーションが行えず、バックエンドでのバリデーションのみを行う

フロントエンドでのバリデーションに加え、バックエンドでも同様のバリデーションを行う

バリデーションをフロントエンドで行う理由は、バリデーションのためにHTTP通信する必要がなく、バリデーション完了後の正しい状態となっている値だけを送信できるためです。 また、バリデーションがHTTPリクエストを伴わないためバリデーションの結果を速やかにユーザーへ通知できます。

バックエンドでも同様のバリデーションを行う理由は、不正なリクエストからアプリケーションを守るためです。 前述のようにフロントエンドでバリデーションを行うため、フロントエンドのUIで入力された値であれば必ず正しい状態でバックエンドへ送信されます。 しかし、ブラウザの開発者コンソールで不正な値を送信するJavaScriptプログラムを実行したり、curlやその他のHTTPクライアントを用いて不正な値を直接バックエンドへ送信できま。 そういった不正なリクエストを阻止するために、バックエンドでも必ずバリデーションは行います。

この場合、正しくフロントエンドのUIを使用しているならバックエンドではバリデーションエラーに成り得ません。 そのため、バックエンドのバリデーションではユーザーフレンドリーなエラーメッセージを返す必要はありません。

フロントエンドではバリデーションが行えず、バックエンドでのバリデーションのみを行う

DBの値で存在チェックを行うと言った、フロントエンドからは参照できないリソースが必要となるバリデーションがあります。

この場合はフロントエンドではバリデーションができないので、バックエンドでのバリデーションのみを行います。


※ このドキュメントはFintan コンテンツ 使用許諾条項の下に提供されています。

※ このドキュメントに記載されている会社名、製品名は、各社の登録商標または商標です。