Laravel API 開発ガイド
このガイドについて
Laravel を API バックエンドとして使うための全 22 章のガイドです。Blade やフロントエンド機能は扱わず、JSON を返す API に必要な機能だけを扱います。
このガイドが目指すのは「動くコード」ではなく「本番で運用できるコード」です。チュートリアルどおりに書けば動くが本番で壊れる、という箇所を各章で明示します。たとえば注文 API は、同時に 2 つのリクエストが来ると在庫を二重に引き当てます。一覧 API は Policy を書いても他人のデータを返します。こうした落とし穴を、遭遇する順番で拾っていきます。
このガイドの特徴
- API 専用: Blade / Livewire / Inertia を一切使いません。全章が JSON を返す API の話です
- 一貫した題材: EC サイトの注文システムを 22 章かけて育てます。各章が前章の続きから始まります
- 本番で効く注意点: 各章に専用の節を置き、その機能を本番で使うときに何が壊れるかを書きます
- モダンな前提: Laravel 13 (2026 年 3 月リリース) と PHP 8.3 を対象とします
ガイドの構造
章立て
執筆中のガイドです
現在このガイドは執筆中です。公開済みの章はリンクになっています。
土台をつくる (第1-4章)
| # | 章 | 概要 |
|---|---|---|
| 01 | はじめに | 動くコードと運用できるコードの差。題材と完成形のエンドポイント一覧 |
| 02 | リクエストライフサイクル | 1 リクエストが通る道。bootstrap/app.php とサービスコンテナ |
| 03 | モデリングとデータ整備 | テーブル設計・マイグレーション・enum キャスト・ファクトリとシーダー |
| 04 | ルーティングと最初のエンドポイント | apiResource()・ルートモデルバインディング・バージョニング |
リクエストからレスポンスまで (第5-10章)
| # | 章 | 概要 |
|---|---|---|
| 05 | 入力の検証 | Form Request で形式チェックの境界を固める |
| 06 | ビジネスロジックの置き場所 | Fat Controller の解体。サービスクラスとサービスコンテナ |
| 07 | 出力の設計 | API Resource でレスポンスの形を明示的に決める |
| 08 | 一覧 API | ページネーション・フィルタ・N+1 の検出 |
| 09 | エラー設計 | 例外を HTTP レスポンスに翻訳する |
| 10 | テスト | Pest で API の振る舞いを固定する |
API を守る (第11-13章)
| # | 章 | 概要 |
|---|---|---|
| 11 | 認証 | Sanctum のトークン認証。ゲスト注文を会員注文へ移す |
| 12 | 認可 | Gate と Policy。一覧 API で Policy が効かない理由 |
| 13 | ミドルウェアとレート制限 | 自作ミドルウェア・Webhook の署名検証・RateLimiter |
重い処理を安全にさばく (第14-18章)
| # | 章 | 概要 |
|---|---|---|
| 14 | トランザクションと同時実行制御 | 在庫の二重引き当てを行ロックと条件付き更新で塞ぐ。再送は一意制約で止める |
| 15 | イベントと通知 | Notification と Mailable。同期送信のコストを測る |
| 16 | キューの基礎 | Job クラス・dispatch・queue:work |
| 17 | キューの本番運用 | 冪等性・リトライ・failed_jobs・ワーカーの再起動 |
| 18 | キャッシュ | キー設計・スタンピード対策・無効化戦略 |
周辺機能と運用 (第19-22章)
| # | 章 | 概要 |
|---|---|---|
| 19 | ファイルストレージ | アップロード・署名付き URL・ジョブでの PDF 生成 |
| 20 | タスクスケジューラ | 定期処理を cron 1 行に集約する |
| 21 | ログ・監視とデプロイ | 構造化ログ・機密情報の扱い・デプロイ手順 |
| 22 | まとめ | 本番リリース前チェックリスト |
対象読者
- PHP の基本文法を一通り書けて、Laravel でこれから API を作る人
- Laravel のチュートリアルは終えたが、本番で何に気をつければよいか分からない人
- フロントエンドは別で作るので、Laravel は API として使いたい人
前提知識
| 必須度 | 知識 | 補足 |
|---|---|---|
| 必須 | PHP 8 の基本文法 (変数・配列・制御構文・関数) | 全章 |
| 必須 | クラス・メソッド・コンストラクタ・型宣言・名前空間 | 全章。設計原則そのものは PHPクラス設計ガイド で扱います |
| 必須 | ターミナルの基本操作と Composer でのインストール | 第2章以降 |
| 推奨 | SQL の SELECT / INSERT / UPDATE が読める | 第3章。書けなくてかまいません |
| 推奨 | HTTP の GET / POST と URL の構造を聞いたことがある | 第4章 |
| 不要 | Laravel の経験 | 本ガイドで基礎から解説します |
| 不要 | テストの経験 | 第10章で基礎から解説します |
推奨される読み方
- Laravel が初めて: 第1章から順に読み、各章のコードを実際に動かしながら進める
- 基礎はあり、運用面を知りたい: 各章の「本番で効く注意点」の節だけを拾い読みし、気になった章を本文から読む
- 辞書的に使いたい: 上の章立て表から該当する章を直接開く
このガイドで扱わないこと
| 対象 | 理由 |
|---|---|
| Blade / Livewire / Inertia / Vite | API として使う前提のため。フロントエンドは別で作ることを想定します |
| ブロードキャスト (Reverb / Echo) | クライアント側が JavaScript 実装になり、フロントエンドを扱わない方針と合いません |
| Passport / OAuth2 | 公式が「OAuth2 が必要な場合のみ Passport」としています。選定の基準だけ第11章に置きます |
| JWT | Laravel × DDD × クリーンアーキテクチャ実践ガイド が 1 章かけて扱います |
| DDD 戦術パターン・クリーンアーキテクチャの層実装 | 同上。本ガイドは Laravel の標準構成に留めます |
| インデックス設計・正規化の理論 | データベース設計ガイド が扱います |
| Laravel の AI 機能・ベクトル検索 | Laravel 13 の新機能ですが、API 開発の基礎から離れます |
| Docker / サーバー構築 / CI/CD | 第21章は Laravel 側の設定に限定します |
関連ガイド
- PHPクラス設計ガイド — クラス設計の原則そのもの。本ガイドの第6章で使う判断基準の土台です
- Laravel × DDD × クリーンアーキテクチャ実践ガイド — 本ガイドの次に読むガイド。層を分ける設計を扱います
- データベース設計ガイド — テーブル設計・正規化・インデックス設計
既存ガイドとの重複について
クラス設計の観点からの Laravel 解説は、現在 PHPクラス設計ガイド の後半にもあります。本ガイドの完成後に、そちらの Laravel 部分は本ガイドへ統合される予定です。