カテゴリ: Laravel 更新日: 2026/02/04

LaravelでAPIバリデーションを実装する方法を完全解説(FormRequest入門)

LaravelでAPIバリデーションを実装する方法(FormRequestクラス)
LaravelでAPIバリデーションを実装する方法(FormRequestクラス)

先生と生徒の会話形式で理解しよう

生徒

「LaravelでAPIを作ってみたんですが、変なデータでも登録できてしまいます。これって大丈夫なんでしょうか?」

先生

「そのままだと困りますね。入力内容をチェックする仕組みが必要です。Laravelではバリデーションという機能を使います。」

生徒

「バリデーションって何をするものですか?」

先生

「今回はAPI開発でよく使うFormRequestを使って、分かりやすく説明していきます。」

1. APIバリデーションとは何か

1. APIバリデーションとは何か
1. APIバリデーションとは何か

APIバリデーションとは、送られてきたデータが正しいかどうかを確認する仕組みです。たとえば、名前が空っぽだったり、数字しか入らないはずの場所に文字が入っていたりすると、後の処理で問題が起こります。

これを防ぐために、Laravelでは「この項目は必ず必要」「ここは数字だけ」といったルールをあらかじめ決めておきます。これがバリデーションです。現実世界でいうと、申込書に記入漏れがあれば受付で止められるのと同じ考え方です。

2. FormRequestクラスとは

2. FormRequestクラスとは
2. FormRequestクラスとは

FormRequestクラスとは、バリデーションのルールを専用のクラスとしてまとめるための仕組みです。コントローラに直接ルールを書く方法もありますが、処理が増えると読みづらくなります。

FormRequestを使うと、「入力チェック専門のノート」を一冊作るようなイメージになります。役割がはっきり分かれるため、初心者でもコードの意味を理解しやすくなります。LaravelのAPI開発では、この方法がよく使われます。

3. FormRequestクラスの作成

3. FormRequestクラスの作成
3. FormRequestクラスの作成

Laravelでは、コマンドを使ってFormRequestクラスを作成できます。作成すると、バリデーション用のルールを書く場所が用意されます。ここに「どんな条件を満たす必要があるか」を書いていきます。

ルールは文字列で指定し、「必須」「文字数」「形式」などを簡単に表現できます。難しい数学のような処理を書く必要はなく、決められた言葉を組み合わせるだけなので、プログラミング未経験の人でも安心です。

4. バリデーションルールの基本例

4. バリデーションルールの基本例
4. バリデーションルールの基本例

public function rules()
{
    return [
        'name' => 'required',
        'age' => 'required|integer',
    ];
}

この例では、nameは必ず入力する、ageは必ず入力し数字でなければならない、というルールを決めています。requiredは「必須」、integerは「整数」という意味です。英単語がそのまま意味を表しているので覚えやすいのが特徴です。

5. APIでバリデーションエラーが起きたとき

5. APIでバリデーションエラーが起きたとき
5. APIでバリデーションエラーが起きたとき

APIでバリデーションに失敗すると、Laravelは自動的にエラーメッセージを返します。画面ではなく、データとしてエラー内容が返るのがAPIの特徴です。

これは、間違った入力があったことをアプリ側に正しく伝えるためです。たとえばスマホアプリでは、このエラーを受け取って「入力内容を確認してください」と表示できます。APIとアプリが連携するために、とても重要な仕組みです。

6. コントローラでの使い方

6. コントローラでの使い方
6. コントローラでの使い方

FormRequestクラスは、コントローラの引数として使います。そうすると、コントローラの処理が始まる前に、自動でバリデーションが行われます。

つまり、正しくないデータはコントローラに届く前に止められます。これにより、コントローラの中では「正しいデータが来ている前提」で処理を書けるようになります。コードがシンプルになり、ミスも減ります。

7. API開発でFormRequestを使うメリット

7. API開発でFormRequestを使うメリット
7. API開発でFormRequestを使うメリット

LaravelのAPI開発でFormRequestを使う最大のメリットは、コードの整理と安全性です。入力チェックを一か所にまとめることで、後から見返したときにも理解しやすくなります。

また、不正なデータを早い段階で防げるため、システム全体の信頼性が高まります。APIバリデーションは地味に見えますが、安心して使えるAPIを作るために欠かせない基本機能です。

関連記事:
カテゴリの一覧へ
新着記事
New1
Laravel
LaravelでAPIのレスポンスをテストする方法を完全解説!assertJsonで初心者も安心
New2
CodeIgniter
CodeIgniterでRESTful API開発!初心者でもわかる全体構成ガイド
New3
Symfony
Symfonyのコントローラとは?作成・構造・役割を初心者向けにやさしく解説!
New4
Symfony
Symfonyでバリデーションメッセージを多言語対応する方法!初心者でもわかる国際化の基本
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelで動的パラメータをルートに渡す方法!初心者にもやさしいルートパラメータの使い方入門
No.2
Java&Spring記事人気No2
Laravel
Laravelのシングルアクションコントローラとは?使い方と利点
No.3
Java&Spring記事人気No3
Laravel
Laravelでキャッシュを使う方法(ファイル・Redis・Memcached)
No.4
Java&Spring記事人気No4
Symfony
Symfonyの依存性注入(DI)とは?コンストラクタでの注入方法を初心者向けに徹底解説
No.5
Java&Spring記事人気No5
Laravel
LaravelのBlade構文まとめ!@if @foreach など基本ディレクティブ解説
No.6
Java&Spring記事人気No6
Laravel
Laravelで名前付きルートを設定する方法!初心者でもわかるroute()関数の使い方
No.7
Java&Spring記事人気No7
Laravel
Laravelのマイグレーション履歴を確認する方法を徹底解説!migrate:statusの使い方
No.8
Java&Spring記事人気No8
Laravel
Laravelのルート一覧を確認する方法!初心者でもわかるphp artisan route:listの使い方