CakePHP を使用した API 開発の流れ

CakePHPを使ったAPI構築の基本的な流れを紹介します。このガイドでは、プロジェクトのセットアップからCRUD機能の実装、テストまでを詳しく解説します。


1. プロジェクトの基本構築

CakePHPプロジェクトのセットアップ

まず、CakePHPのプロジェクトを作成し、必要なコンポーネントをセットアップします。

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

データベースの接続設定

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


2. エンティティとテーブルを定義する

マイグレーションファイルを作成

CakePHPのマイグレーション機能を使い、データベースの構造を定義します。

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

マイグレーションの実行

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

bashコピーする編集するbin/cake migrations migrate

3. コントローラーを作成する

コントローラーの雛形を生成

CakePHPのbakeコマンドを使用して、コントローラーを自動生成します。

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

アクションの実装

生成されたコントローラーにAPI処理を記述します。以下はindexアクションの例です。

phpコピーする編集するpublic function index()
{
    $users = $this->Users->find()->toArray();

    $this->set([
        'users' => $users,
        '_serialize' => ['users'], // JSONレスポンスを有効化
    ]);
}

4. ルーティングの設定

APIを動作させるために、ルーティングを定義します。

API用のスコープを作成

config/routes.phpに以下を追加します。

phpコピーする編集する$routes->scope('/api', function (RouteBuilder $builder): void {
    $builder->setExtensions(['json']);
    $builder->resources('Users');
});

これにより、/api/usersエンドポイントが自動的に作成されます。


5. 動作確認とデバッグ

リクエストを送信

以下のコマンドを使って、エンドポイントが期待通りに動作するか確認します。

bashコピーする編集するcurl -X GET http://localhost:8080/api/users.json

エラーが出た場合

エラー内容を確認し、必要に応じてCakePHPのログやデバッグ情報を参照してください。


6. 追加機能の実装

viewアクション

特定のユーザー情報を返すエンドポイントを実装します。

phpコピーする編集するpublic function view($id)
{
    $user = $this->Users->get($id);

    $this->set([
        'user' => $user,
        '_serialize' => ['user'],
    ]);
}

addアクション

新しいユーザーを作成するエンドポイントを実装します。

phpコピーする編集するpublic function add()
{
    $user = $this->Users->newEmptyEntity();
    if ($this->request->is('post')) {
        $user = $this->Users->patchEntity($user, $this->request->getData());
        if ($this->Users->save($user)) {
            $this->set([
                'message' => 'User created successfully',
                'user' => $user,
                '_serialize' => ['message', 'user'],
            ]);
        }
    }
}

7. テストの実施

単体テストの作成

テストファイルを作成し、自動テストを記述します。

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

テストの実行

以下のコマンドでテストを実行します。

bashコピーする編集するbin/cake test

8. まとめ

CakePHPを使用したAPI構築では、以下の手順を繰り返し実施することで、効率的かつ柔軟なAPIを作成できます。

  • 必要なエンドポイントを順次実装
  • 小さなモジュールに分割して管理
  • テストを活用して品質を担保

Comments

コメントを残す

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