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

LaravelでAPIレスポンスを統一する方法を完全解説!Resourceクラス入門

LaravelでAPIレスポンスを統一する方法(Resourceクラスの活用)
LaravelでAPIレスポンスを統一する方法(Resourceクラスの活用)

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

生徒

「LaravelでAPIを作っていると、返ってくるデータの形がバラバラになってしまいます…」

先生

「それはAPIレスポンスをそのまま返しているからですね。Laravelには形をそろえる便利な仕組みがあります。」

生徒

「初心者でも使える方法ですか?」

先生

「大丈夫です。Resourceクラスを使えば、分かりやすく整理できますよ。」

1. APIレスポンスとは何かをやさしく理解しよう

1. APIレスポンスとは何かをやさしく理解しよう
1. APIレスポンスとは何かをやさしく理解しよう

APIレスポンスとは、Laravelがリクエストに対して返す返事のことです。 画面を表示する代わりに、データだけを返すのがAPIの特徴です。

例えるなら、質問に対して答えを書いたメモを渡すようなものです。 このメモの書き方が毎回違うと、受け取る側は困ってしまいます。

そこで重要になるのが、APIレスポンスの形を統一するという考え方です。

2. レスポンスが統一されていないと何が困るのか

2. レスポンスが統一されていないと何が困るのか
2. レスポンスが統一されていないと何が困るのか

APIレスポンスがバラバラだと、JavaScript側の処理が複雑になります。 データの名前や並びが違うだけで、毎回書き方を変えなければなりません。

これは、同じ意味なのに毎回違う言葉で説明されるようなものです。 人間でも混乱しますよね。

LaravelのAPI開発では、最初からレスポンスを整理しておくことで、 後から修正しやすくなります。

3. Resourceクラスとは何か

3. Resourceクラスとは何か
3. Resourceクラスとは何か

Resourceクラスは、APIレスポンス専用の整形係です。 データベースから取得した情報を、そのまま返すのではなく、 必要な形に整えてから返します。

例えるなら、食材をそのまま出すのではなく、 料理として盛り付ける役割を持っています。

Laravelには、このResourceクラスが最初から用意されています。

4. Resourceクラスの基本的な使い方

4. Resourceクラスの基本的な使い方
4. Resourceクラスの基本的な使い方

Resourceクラスは、コマンドで簡単に作成できます。 作成すると、API用のデータ変換クラスが用意されます。


php artisan make:resource UserResource

このクラスの中で、「どのデータを返すか」を決めます。


public function toArray($request)
{
    return [
        'id' => $this->id,
        'name' => $this->name,
        'email' => $this->email,
    ];
}

5. コントローラからResourceを使う流れ

5. コントローラからResourceを使う流れ
5. コントローラからResourceを使う流れ

コントローラでは、データを取得したあとに、 Resourceクラスを通して返します。


use App\Http\Resources\UserResource;

public function show($id)
{
    $user = User::find($id);
    return new UserResource($user);
}

これだけで、APIレスポンスの形が常に統一されます。

6. 複数データを返す場合の考え方

6. 複数データを返す場合の考え方
6. 複数データを返す場合の考え方

一覧データを返す場合でも、考え方は同じです。 Resourceクラスは、まとめてデータを整えることもできます。


return UserResource::collection(User::all());

これにより、1件でも複数件でも、 APIレスポンスの形が崩れません。

7. Resourceクラスを使うメリット

7. Resourceクラスを使うメリット
7. Resourceクラスを使うメリット

Resourceクラスを使うと、APIレスポンスの見た目がそろいます。 修正が必要になった場合も、Resourceクラスだけを直せば済みます。

これは、説明書を一か所で管理しているようなものです。 LaravelでAPI開発をするなら、最初から使っておくと安心です。

関連記事:
カテゴリの一覧へ
新着記事
New1
Laravel
Laravelのコントローラでリクエストをログ出力する方法を初心者向けに解説
New2
Laravel
Laravelでモデルからデータを取得・保存・更新・削除する方法を完全ガイド!初心者でもわかるEloquent ORM入門
New3
Symfony
Symfonyのセッション管理完全ガイド!初心者でもわかるセッションドライバ設定(file・Redis)
New4
Laravel
Laravelのエラーメッセージをカスタマイズする方法|初心者向けガイド
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelでモデルからデータを取得・保存・更新・削除する方法を完全ガイド!初心者でもわかるEloquent ORM入門
No.2
Java&Spring記事人気No2
Laravel
LaravelでBasic認証を実装するミドルウェアの使い方!初心者向けガイド
No.3
Java&Spring記事人気No3
Symfony
SymfonyでTwigテンプレートを表示する方法を完全ガイド!初心者にもわかるHTMLとの違いや使い方
No.4
Java&Spring記事人気No4
Laravel
Laravelのデータベース設定方法を完全ガイド!初心者でもわかる.envファイルの使い方
No.5
Java&Spring記事人気No5
Laravel
LaravelでファクトリとSeederを組み合わせてダミーデータを生成する方法!初心者でも簡単にテストデータ作成
No.6
Java&Spring記事人気No6
Symfony
Symfonyのコントローラでリダイレクトする方法を徹底解説!初心者にもやさしく解説
No.7
Java&Spring記事人気No7
Laravel
LaravelのテストでCSRFやセッションの扱いをやさしく理解しよう!初心者向け完全ガイド
No.8
Java&Spring記事人気No8
Symfony
Symfonyでメモリキャッシュ(APCu)を活用する方法を初心者向けに完全解説