【サンプルを利用する場合(QUICK-START)】

はじめに

このページでは、REST-API サーバーをサンプルを利用して最短で動かすための手順を紹介します。
プロジェクトの生成からサーバー起動、動作確認、最初の API 実装までを一通り体験できるため、 SOCKET-MANAGER Framework の基本的な開発フローを素早く理解できます。

サンプル環境は PSR-7 準拠 の HTTP 処理や CUEI アーキテクチャ に基づく内部構造をそのまま利用でき、 REST-API 開発の基礎を学ぶのに最適です。

まずは「動くものを触りたい」という方は、このサンプルを利用したクイックスタートから始めてください。
1 からサーバーを構築したい場合は、 ▶新規でサーバーを作る場合(QUICK-START) を参照してください。

プロジェクト作成


REST-API 開発環境の生成

最短で REST-API を動かすには、まず create-project で環境を生成します。
composer create-project socket-manager/rest-api my-api
                    

完了すると、REST-API サーバーに必要なディレクトリと設定ファイルが自動生成されます。

サーバー起動


イベントハンドラ型の起動

php worker app:event-handler-sample
                    

ステートマシン型の起動

php worker app:state-machine-sample
                    

起動に成功すると、REST-API サーバーがポート 10000 で待ち受けます。

動作確認


ブラウザで確認

http://localhost:10000/sample.html
                    

サンプル画面には、GET / POST / PUT / DELETE などの基本 API を試せる UI が用意されています。

API を直接叩く(curl)

curl http://localhost:10000/api/v1/sample
                    

JSON レスポンスが返れば、REST-API サーバーは正常に動作しています。

最初の API を作る


ルーティングを追加

サンプル環境では、setting/routing-sample.php にルーティングを追加するだけで 新しい API を作成できます。

例として /hello にアクセスしたときに JSON を返す API を追加します。
[
    'method' => 'get',
    'uri'    => '/hello',
    'event'  => 'responseHello'
],
                    

イベントハンドラクラスにメソッドを追加

次に、イベントハンドラクラス(app/EventClass/EventHandlerSample.php)へ ルーティングで指定したメソッド(responseHello)を追加します。
protected function responseHello($p_param)
{
    $p_param->response()->json(['message' => 'Hello API']);
}
                    

動作確認

サーバーを起動します。
php worker app:event-handler-sample
                    

ブラウザまたは curl でアクセスします。
curl http://localhost:10000/hello
                    

{"message":"Hello API"}
                    
これで最初の REST-API が完成します。
サンプル環境では、ルーティングとメソッド追加だけで API を簡単に拡張できます。

次のステップ

このクイックスタートでは、REST-API サーバーを動かすための最小構成を紹介しました。
より高度な実装や内部構造について理解を深めたい場合は、以下のページを参照してください。

● CUEIとの実装レベルでの関係(通信抽象化 / Context / Event / IPC)
▶CUEIとの実装レベルでの関係

● PSR-7 ラッパーの仕様(RequestWrapper / ResponseWrapper)
▶PSR-7 ラッパーの仕様

● イベントハンドラ型実装(CRUD / Range)
▶イベントハンドラ型実装

● ステートマシン型実装(Chunked / SSE / Range / IPC)
▶ステートマシン型実装

REST-API サーバーの基礎から応用まで、段階的に理解できる構成になっています。