カテゴリ: 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で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
Laravel
LaravelのBlade構文まとめ!@if @foreach など基本ディレクティブ解説
No.5
Java&Spring記事人気No5
Symfony
Symfonyの依存性注入(DI)とは?コンストラクタでの注入方法を初心者向けに徹底解説
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の使い方