UStackUStack
Decoy icon

Decoy

macOS用ネイティブアプリDecoyでローカルモックサーバーを簡単に作成。APIテストやWebhook連携を複雑な設定なしで実現。

Decoy

Decoyとは?

Decoyとは?

Decoyは、開発者がローカルモックサーバーを簡単に作成・管理できるように設計された、パワフルで直感的なネイティブmacOSアプリケーションです。セットアップ不要のシンプルな環境を提供し、APIエンドポイントのシミュレーション、Webhook連携のテスト、ネットワーク関連コードのデバッグプロセスを簡素化します。複雑な設定、Dockerコンテナ、クラウドベースのトンネリングサービスを必要とする従来のメソッドとは異なり、DecoyはMac上で即座に利用できる体験を提供します。

SwiftUIやNetwork.frameworkといった最新のmacOSテクノロジーで構築されたDecoyは、パフォーマンスとリソース効率に最適化されています。瞬時に起動し、最小限のメモリしか消費せず、モックレスポンスのリアルタイム変更を可能にし、シームレスな開発ワークフローを保証します。新しいアプリケーションの構築、サードパーティサービスとの連携、ネットワーク障害やタイムアウトのようなエッジケースのテストなど、Decoyは開発サイクルを加速するために必要な柔軟性と制御を提供します。

主な機能 (Key Features)

  • 簡単なモックサーバー作成: カスタムメソッド、パスでエンドポイントを定義し、プロジェクトごとにグループ化して整理。
  • リアルタイムリクエスト監視: ヘッダー、ボディ、ソースIP、タイムスタンプを含む詳細情報で、すべて受信リクエストを表示。JSONペイロードは読みやすく自動フォーマット。
  • 柔軟なレスポンスモック: あらゆるHTTPステータスコードでレスポンスを設定し、7種類(プレーンテキスト、JSON、HTML、XML、ファイル、空、リダイレクト)のボディタイプから選択、カスタムヘッダー設定、遅延シミュレーションが可能。
  • パラメータ付きパス: /users/:id のような動的パスをサポートし、様々なリクエストパラメータに対応。
  • 複数のレスポンスボディタイプ: JSON、HTML、XML、プレーンテキスト、ファイル(画像、PDF)、空レスポンス、リダイレクトを簡単に提供。
  • 即時変更: エンドポイントやレスポンスの変更は、次回の受信リクエストに即座に反映。
  • リクエストエクスポート: リクエスト詳細をcURL、JavaScript fetch、Rubyコードスニペットとしてコピーし、デバッグや共有を容易に。
  • 自動CORS対応: CORSヘッダーが自動的に追加され、ブラウザベースのリクエストがシームレスに動作。
  • ファイルレスポンス: 静的ファイルをレスポンスとして直接提供。
  • ネイティブmacOSエクスペリエンス: SwiftUIで構築され、高速で応答性が高く、メモリ効率の良いアプリケーション。Docker、クラウドトンネル、複雑な設定ファイルは不要。
  • プロジェクトグルーピング: カスタムサブドメイン(例: api.decoy.my)でエンドポイントを整理。
  • レスポンススナップショット: 各リクエストに対して送信された正確なレスポンスを確認。
  • カスタムドメイン: decoy.mylvh.me のようなデフォルトドメインを使用するか、独自の設定が可能。
  • 詳細なリクエスト検査: ヘッダー、ボディ(バイナリデータの場合は16進ダンプ表示)、ソースIP、タイムスタンプ、各リクエストの一意のUUIDを検査。
  • リダイレクトサポート: 自動的な Location ヘッダー処理により、301、302、307、308リダイレクトを簡単に設定。
  • 永続ストレージ: リクエストはSQLiteデータベースに保存され、アプリが予期せず終了してもデータ損失なし。

Decoyの使い方

Decoyの使い始めは非常にシンプルです。

  1. Decoyのインストール: Mac App StoreからDecoyをダウンロードしてインストールします。
  2. プロジェクトの作成: Decoyを起動し、新しいプロジェクトを作成します。カスタムサブドメイン(例: myapi)を割り当てるか、デフォルトの decoy.my ドメインを使用できます。
  3. エンドポイントの定義: プロジェクト内で新しいエンドポイントを追加します。HTTPメソッド(GET、POST、PUT、DELETEなど)とパス(例: /users/products/:id)を指定します。
  4. レスポンスの設定: 各エンドポイントについて、目的のレスポンスを定義します。ステータスコードを選択し、ボディタイプ(JSON、テキスト、ファイルなど)を選び、必要なヘッダーを追加し、オプションで遅延を設定してネットワーク遅延をシミュレートします。
  5. アプリケーションの接続: アプリケーション、スクリプト、またはサービスを設定し、Decoyが提供するアドレス(例: http://myapi.decoy.my:8998)にリクエストを送信するようにします。
  6. 監視とデバッグ: リクエストが到着すると、Decoyはリアルタイムで表示します。受信リクエストのすべての詳細を確認し、送信されたレスポンスを検証できます。
  7. 反復: エンドポイント設定やレスポンスに変更を加えていきます。Decoyはこれらの変更を即座に適用し、迅速な反復とデバッグを可能にします。

ユースケース

  • API開発とテスト: フロントエンド開発中にバックエンドAPIレスポンスをシミュレートし、バックエンド完了を待たずにチームが並行作業できるようにします。様々なレスポンスシナリオ(エラーコードやエッジケースを含む)をテストします。
  • Webhook連携テスト: Stripe、GitHub、Slackなどのサードパーティサービスからの受信Webhookをアプリケーションがどのように処理するかを、Decoyでローカルに受信・検査して簡単にテストします。
  • モバイルアプリ開発: ライブバックエンドに依存せずに、モバイルアプリケーションのUI動作、オフラインシナリオ、エラー処理をテストするためにネットワークリクエストをモックします。
  • ネットワーク耐性テスト: Decoyのレスポンスに遅延を導入することで、低速なネットワーク条件やタイムアウトをシミュレートし、遅延にうまく対処できる、より堅牢なアプリケーションの構築を支援します。
  • スクレイパーとボット開発: ローカルモックサーバーから予測可能なレスポンスを提供することで、Webサービスと対話するスクレイパーやボットをテストします。

FAQ

  • Decoyのシステム要件は何ですか? DecoyにはmacOS 14 Sonoma以降が必要です。

  • Decoyは無料ですか? Decoyは有料アプリケーションで、Mac App Storeで€24.99で購入可能です。

  • Decoyを使用するためにDockerやNode.jsが必要ですか? いいえ、DecoyはスタンドアロンのネイティブmacOSアプリケーションです。コア機能のためにDocker、Node.js、その他の外部ランタイム環境は必要ありません。

  • DecoyはHTTPSリクエストを処理できますか? 現在、DecoyはHTTPリクエストに焦点を当てています。HTTPSモックの場合、通常はリバースプロキシを設定するか、別のツールセットを使用する必要があります。

  • リクエストはどのように保存されますか? 受信リクエストはローカルSQLiteデータベースに保存され、アプリケーションが予期せず閉じられた場合でもリクエスト履歴が保持されます。