Decoy
DecoyはDockerやクラウドトンネルなしでローカルAPI/ウェブフックを擬似できるmacOSモックサーバー。エンドポイント設定とリクエスト監視、応答調整が可能。
Decoyとは?
Decoyは、開発者がHTTPエンドポイントとウェブフックの動作をローカルでシミュレートするためのmacOSネイティブモックサーバーです。ルートを定義し、受信リクエストを監視し、制御されたモック応答を返却することで、外部サービスを立てずにAPIラッパー、リクエスト処理、リダイレクト、障害モードをテストできます。
Decoyの主な目的はローカルでオンデマンドなテストです。クライアントをDecoyのローカルドメインとポートに設定し、各リクエストの到着を監視し、エンドポイント応答を調整して、選択したシナリオでコードをテストします。
主な機能
- macOSネイティブアプリで即時起動:SwiftUIアプリとして動作し、Docker、クラウドトンネル、セットアップ不要で素早く開始。
- エンドポイントとリクエスト/応答制御:メソッド+パスをプロジェクトごとに定義し、応答ステータスコード、本文タイプ、ヘッダー、遅延を設定。
- リアルタイムリクエスト監視:受信リクエストごとにヘッダー、本文、送信元IP、タイムスタンプ、UUIDを表示。JSON本文は自動整形。
- パラメータ付きパスとプロジェクト:パスパラメータ(例: /users/:id が /users/42 にマッチ)をサポートし、エンドポイントをプロジェクトに整理。
- 一般的なウェブシナリオ向け応答形式:プレーンテキスト、JSON、HTML、XML、ファイル、空、リダイレクトを選択。リダイレクト時はLocationヘッダーを自動設定。
- ブラウザとCORS対応:ブラウザリクエストがそのまま動作し、CORSヘッダーを自動追加。リダイレクトステータス(301, 302, 307, 308)対応。
- リクエスト/応答スナップショットとエクスポート:各リクエストの実際の応答を表示し、cURL、JavaScript fetch、Rubyとしてエクスポート。
- SQLiteによる永続リクエストログ:リクエストを即時SQLiteに書き込み、アプリ異常終了時もデータ喪失なし。
Decoyの使い方
- Mac App StoreからDecoyをインストールし、macOS 14 Sonoma以降でアプリを起動。
- プロジェクトを作成/選択し、メソッドとパスでエンドポイントを定義。
- 各エンドポイントのモック応答を設定:ステータスコード、本文タイプ(JSON、HTML、XML、ファイルなど)、ヘッダー、遅延を選択。
- アプリやテストツールをDecoyのローカルドメインとポート(製品説明のdecoy.my:8998など)に設定。
- クライアントやブラウザからリクエスト送信。Decoyが受信リクエスト詳細を表示し、次のリクエストから応答変更を適用。
ユースケース
- ウェブフック処理とエッジケースのテスト:Decoyにウェブフックリクエストを送り、コードが異なるステータスコード、応答本文、ヘッダー、遅延をどう処理するかを確認。
- APIラッパー処理の検証:制御したモックエンドポイントでAPIクライアントをテストし、応答ペイロードとヘッダーを調整しながら受信リクエストを観察。
- リダイレクト動作の再現:適切なLocationヘッダー付きリダイレクトをエンドポイントに設定し、アプリが301/302/307/308にどう従うかをテスト。
- 開発中の静的コンテンツ提供:ファイル応答で画像、PDF、その他ファイルを直接配信、またはHTML本文タイプで完全なHTMLページを提供。
- 実際のリクエスト/応答のキャプチャと再利用:リクエストスナップショットを使い、生成されたcURLやfetch/Ruby相当をエクスポートして問題再現や共有。
FAQ
DecoyはDocker、クラウドトンネル、設定ファイルが必要ですか? いいえ。製品説明の通り、Docker、クラウドトンネル、設定ファイル不要です。
対応プラットフォームとバージョンは? macOS 14 Sonoma以降が必要です。
モック応答の変更はいつ適用されますか? JSON、ヘッダー、ステータスコードなどの編集は、次の受信リクエストから有効。
ブラウザリクエストとCORSは扱えますか? はい。ブラウザリクエストをサポートし、CORSヘッダーを自動追加。
リクエストデータはどこに保存されますか? リクエストを即時SQLiteに書き込み、製品説明の通りアプリ異常終了時もデータ喪失なし。
代替案
- ローカルHTTPモックサーバー(汎用ツール):このカテゴリのツールもローカルエンドポイントと制御可能な応答を提供し、通常は設定ファイルやコンテナを使用;DecoyはDocker不要のmacOSネイティブUIを重視。
- 専用APIモックプラットフォーム(ホストサービス):これらはネットワーク経由でエンドポイントをシミュレート可能だが、通常は外部セットアップとデプロイが必要で、ローカルモックサーバーの実行とは異なる。
- リクエスト/応答スタブライブラリやテストフレームワーク:一部のチームはテストスイート内でコードベースのスタブを使用;Decoyのスタンドアロン・ローカルサーバー(リクエスト監視と応答編集UI)とは異なる。
- モッキング対応APIテストツール:一部のインタラクティブAPIクライアントがモッキングやローカルシミュレーションをサポート;特にリクエスト監視、プロジェクト、応答スナップショット/エクスポート機能周りでワークフローが異なる可能性。
代替品
Falconer
Falconerは、スピード重視のチーム向けの自己更新ナレッジ基盤。社内ドキュメントとコード文脈を一元化して共有・検索できます。
OpenFlags
OpenFlagsはオープンソースのセルフホスト型フィーチャーフラグ管理。アプリSDKでローカル評価し、制御プレーンで安全に段階展開。
skills-janitor
skills-janitorでClaude Codeのスキルを監査・使用状況を追跡し、9つの/コマンドと比較。重複や不備もチェック。依存なし。
Rectify
RectifyはSaaS向けオペレーション統合プラットフォーム。監視・分析・サポート・ロードマップ/変更履歴・エージェント管理を会話で一元操作。
GitBoard
GitBoard は macOS のメニューバーで GitHub Projects のカンバンを表示。ステータスで絞り込み、課題検索、作成・割り当て可能。
Studio CLI
Studio CLIでターミナルからWordPress Studioの機能を管理。ローカルサイトやWordPress.comのプレビュ-作成・更新・削除、認証に対応。