特徴
- エンドポイントの自動登録
responses/
以下のフォルダをスキャンし、ディレクトリ構造に応じたエンドポイントを自動登録。
- APIのベースパスを環境変数で設定可能。
GET users/{group}/{limit}
のような動的パラメータのエンドポイント解析にも対応。
- レスポンスファイルの動的読み込み
.json
→ JSONレスポンスとして返却。
.txt
→ テキストレスポンスとして返却。
- ポーリング対応
1.json
, 2.json
など複数ファイルを用意すればリクエスト回数に応じてレスポンスを変更できる。
- ポーリングはクライアント毎に実行され、
POST: /reset_polling
リクエストでリセットできる。
- カスタムレスポンス
- クエリパラメータ
mock_response
を指定することでレスポンスを動的に切り替え可能。 例:
GET /users?mock_response=success
→
responses/users/get/success.json
を取得。
- クエリパラメータ
mock_content_type
を指定することでレスポンスの ContentType を指定可能。 例:
GET /others?mock_response=xml&mock_content_type=application/xml
→ responses/others/get/xml.txt
をXML形式で取得。
- エラーレスポンス
responses/errors/404.json
などのエラーレスポンスを定義可能。
- レスポンスの遅延
- JSONファイル内に
"mockDelay: 1000"
(例:
1秒)と設定すると応答を遅らせることができる。
- カスタムフック
- メソッド+エンドポイントの任意のリクエスト毎にカスタムフックを登録してレスポンス内容をオーバーライドできる。
例:
GET /users
のリクエストに対して
hooks/get_users.php
のカスタムフックファイルを実行してレスポンスを制御可能。
- OpenAPIスキーマへの対応
- JSONレスポンスを元に OpenAPI 3.0
スキーマを自動生成する機能を搭載。
example
項目も適切にトリミングされて埋め込まれるため、過剰なレスポンスデータを回避。
- バリデーションには
opis/json-schema
を使用し、スキーマの整合性チェックも自動化。
- ロギング
request.log
にリクエスト内容(ヘッダー・クエリ・ボディ)を記録。
response.log
にレスポンス内容を記録。
auth.log
に認証エラー、 error.log
に汎用エラーの内容を記録。
- 全てのログはリクエストIDにより紐づけられるため、照合可能。
- OpenAPIスキーマ自動生成時のバリデーションエラーは
validation-error.log
でトラッキング可能。
- 環境変数による設定保存
- 環境変数の読み込みには
vlucas/phpdotenv
を使用。
.env
を使い、ポート番号 PORT
等の各種環境変数を管理可能。
- APIのベースパス、一時ファイル(
cookies.txt
など)の保存ディレクトリ、ログ出力パス等を指定可能。
API_KEY
や CREDENCIAL
を利用した簡易的な認証機能を実装可能。