CakePHPを使用したAPI開発の流れとファイルのつながり

CakePHPを使ったAPI開発の基本的な流れを解説します。本記事では、プロジェクトのセットアップから運用までの手順と、各ファイル間のつながりについて詳しく説明します。


1. プロジェクトのセットアップ

プロジェクトの作成

以下のコマンドでCakePHPプロジェクトを作成します。

bashコピーする編集するcomposer create-project --prefer-dist cakephp/app my_app_name
cd my_app_name

データベースの接続設定

config/app_local.php にデータベース接続情報を設定します。

つながり
  • config/app_local.php はデータベースとの接続設定を司り、モデルやマイグレーションで使用されます。

2. データベースの準備

マイグレーションの作成

以下のコマンドでテーブル構造を定義するマイグレーションファイルを生成します。

bashコピーする編集するbin/cake bake migration CreateUsers

マイグレーションの実行

生成したマイグレーションを実行してテーブルを作成します。

bashコピーする編集するbin/cake migrations migrate
つながり
  • config/Migrations ディレクトリのファイルで定義されたテーブル構造が、モデルと連携してデータ操作を可能にします。

3. モデルの作成

モデルの生成

以下のコマンドでモデルを自動生成します。

bashコピーする編集するbin/cake bake model Users
つながり
  • モデルは、コントローラーやサービス層から呼び出され、データベース操作のロジックを提供します。

4. コントローラーの作成

コントローラーの生成

以下のコマンドでコントローラーを生成します。

bashコピーする編集するbin/cake bake controller Api/Users

アクションの実装

indexアクションで、全ユーザー情報を取得する処理を実装します。

phpコピーする編集するpublic function index()
{
    $users = $this->Users->find('all');
    $this->set([
        'users' => $users,
        '_serialize' => ['users'],
    ]);
}
つながり
  • コントローラーは、モデルを利用してデータを取得し、レスポンスを生成します。

5. ルーティングの設定

ルートの定義

config/routes.php に以下を追加し、APIエンドポイントを定義します。

phpコピーする編集する$routes->scope('/api', function (RouteBuilder $builder): void {
    $builder->resources('Users');
});
つながり
  • ルート設定により、リクエスト(例: /api/users)が適切なコントローラーに送られます。

6. ビューの作成(JSONレスポンス)

CakePHPではAPIの場合でもビューが役割を持ちます。

JSONレスポンスの有効化

RequestHandler を使用して、JSON形式でレスポンスを生成します。

phpコピーする編集するpublic function index()
{
    $users = $this->Users->find('all');
    $this->set([
        'users' => $users,
        '_serialize' => ['users'],
    ]);
}
つながり
  • 整形されたレスポンスデータがAPIのクライアント(フロントエンドなど)に渡されます。

7. 認証・認可の設定

認証ミドルウェアの追加

src/Application.php に認証ミドルウェアを追加します。

phpコピーする編集する$middleware->add(new AuthenticationMiddleware($this));
つながり
  • ミドルウェアがリクエスト処理の初期段階で動作し、アクセス制限を実現します。

8. テストとデバッグ

テストファイルの作成

以下のコマンドでテストファイルを生成します。

bashコピーする編集するbin/cake bake test Controller/Api/UsersController

テストの実行

以下のコマンドでテストを実行し、各機能を検証します。

bashコピーする編集するbin/cake test
つながり
  • テストファイルで記述した処理が、コントローラーやモデルの動作を検証します。

9. デプロイと運用

デプロイ

完成したAPIを本番環境にデプロイします。DockerやAWS ECSなどを使用して、運用を開始します。


全体のつながりイメージ

  1. ルーティング (config/routes.php): リクエストを適切なコントローラーに送る。
  2. コントローラー (UsersController.php): ロジックを処理し、モデルにデータ操作を依頼。
  3. モデル (UsersTable.php): データベースとやり取りし、データを返す。
  4. レスポンス (JSON): クライアントにデータを提供。

Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です