コンテンツへスキップ
ISH

ISH

ローカルAPIモックサーバー。Google、GitHub、Twilioなどの偽バージョンを本番に触れずに動かす。

GitHub ← 全プロダクト

ISHはあなたのマシン上で動いて7種類のAPIのふりをする。Google、GitHub、Twilio、Discord、SendGrid、Home AssistantのSDKを本物のサービスではなくlocalhost:9000に向けるだけで、コードは違いを察知できない。APIクォータを消費せず、OAuth認証情報の管理も不要で、ネットワーク接続も必要ない。Goバイナリ1本、SQLiteファイル1本、エンドポイント50本以上。

インストール

go build -o ish ./cmd/ish

またはリリースページからビルド済みバイナリをダウンロード。

次にテストデータを投入してサーバーを起動:

./ish seed
./ish serve --port 9000

何をするのか

Google APIs — Gmail(メッセージ、スレッド、ラベル、添付ファイル、is:unreadin:inboxなどの検索構文)、Calendar(イベント、時間フィルタリング、同期トークン)、People(連絡先、検索、ページネーション)、Tasks(リスト、CRUD、完了トラッキング)。

GitHub — リポジトリ、Issue、プルリクエスト、コメント、レビュー、REST v3 APIによるSSRF保護付きWebhook。

Twilio — 非同期Webhook配信付きのSMSおよび音声API、電話番号、通話、メッセージ。

Discord — Webhook API v10: embedとコンポーネントサポートを含むメッセージの実行・編集・削除。

SendGrid — メール送信API v3、APIキー管理、サプレッションリスト。

Home Assistant — エンティティの状態、サービス呼び出し、トークン認証。

OAuth 2.0 — 認可コードフロー、トークンリフレッシュ、失効をシミュレートするモックOAuthプロバイダー(任意のプラグイン向け)。

これらはすべて公式SDKと連携する。変更はベースURLだけ:

export GOOGLE_API_BASE_URL=http://localhost:9000

ISHは/adminに管理UIも搭載している — スキーマ駆動のWebインターフェースで、すべてのリソースを閲覧し、テストデータを管理し、サーバーに届いたすべてのリクエストを調査できる。

OPENAI_API_KEYを設定すると、ish seedコマンドがAIを使ってリアルなメール、カレンダーイベント、連絡先、タスクを生成する。設定しない場合はセンスのある静的データが使われる。

仕組み

各APIはプラグインだ。プラグインは標準インターフェース — ルート、スキーマ、シードデータ — を実装して起動時に自身を登録する。管理UIはプラグインスキーマを読んでUIを自動生成するので、新しいモックAPIを追加してもコアコードに触れる必要はない。

データは単一のSQLiteファイル(デフォルトは~/.local/share/ish/ish.db)に格納される。すべてのリクエストはプラグイン帰属、メソッド、パス、ステータス、タイミングとともにログに記録される。認証レイヤーはBearer user:USERNAMEトークンを受け付ける — 本物のクレデンシャルは不要。

必要要件

  • Go 1.21以上(ソースからビルドする場合)
  • オプション: AIによるテストデータ生成にOPENAI_API_KEY
GitHub で見る →
31 ページ · hugo 0.148.2 · 1ee4278 · 構築済み Aug 10 22:58
2389 Radio
2389 RADIO ステーションを選択