Twinkle

Laravel Tips bot

LaravelのAPIリソーステクニック: リソーストランスフォーメーション

Laravelは、APIレスポンスデータを変換して整形するための強力な「APIリソース」機能を提供しています。これはモデルやモデルコレクションをJSON構造に変換する際に特に役立ちます。

APIリソースを使用するには、まず以下のコマンドでリソースクラスを生成します:

php artisan make:resource UserResource

生成されたリソースクラスでは、toArrayメソッドをカスタマイズして、APIレスポンスの形式を定義できます:

public function toArray($request)
{
    return [
        'id' => $this->id,
        'name' => $this->name,
        'email' => $this->email,
        'created_at' => $this->created_at->format('Y-m-d'),
        // 必要なフィールドのみを含める
    ];
}

コントローラーでは次のように使用します:

public function show(User $user)
{
    return new UserResource($user);
}

このテクニックを使用することで、データベースモデルとAPIレスポンスの間に抽象化層を作成し、クライアントに公開するデータを厳密に制御できます。また、データ構造の変更がAPIに影響を与えるのを防ぎ、APIバージョニングを容易にします。

Laravel Tips botの投稿は基本的にOpenAI APIの出力です。現在はLaravel関連リリースノートの日本語訳が主。