質問: ### 聞きたいこと Webアプリケーションにおいて、データを何かしらデータベースに保存する際には、バリデーションするのが当然かと思います。 フロントエンド・バックエンドで主にバリデーションをするかと思いますが、それぞれの役割は、 * フロントエンド・・・ユーザービリティ向上のために * バックエンド・・・データベースに保存する際の最終チェック だと思っています。 また、HTML5だと添付画像のようにバリデーションをかけることは可能だと思いますし、Webアプリケーションフレームワークを使用している場合はそれぞれのバリデーションメッセージをフロントエンドで表示することも可能だと思います。 ただ、自分自身でWebアプリケーションを作成していて、バリデーションメッセージがフロント(例えばHTML5の)・バックエンド起因かで異なるのにちょっと気持ち悪さを感じています(統一感のなさなど) みなさんの作成されているWebアプリケーションではどのような対応をされているか教えてほしいです。 ![HTML5 バリデーション](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/fedb770f62a73a51e9e03d9d2f6d3613.png)
回答: 実務でクライアントから実装要求があった場合によくやるのは バックエンド(例:PHP)で入力チェックして結果を返すクラスとそのクラスを使うAPIを作っておき、 フロントサイドからはAJAXでAPIを呼び出してチェック、 サーバサイドからは直接クラスを使用してチェックするような事をやります これですと同じ検証ロジックで同じメッセージが返せ、検証ルール変更時の修正も少なく済みます あくまで参考程度にどうでしょうか