Agent Skills by ALSEL
Anthropic Claudeソフトウェア開発⭐ リポ 0品質スコア 50/100

wiremock-standalone-docker

WireMockをスタンドアロンのDockerコンテナとして実行するためのパターンと設定を提供します。モックHTTPエンドポイントの生成、テスト用スタブマッピングの作成、統合シナリオの検証、エラー状態のシミュレーションが可能です。APIのモック化、モックサーバーの構築、外部サービスのスタブ化、サードパーティAPIのシミュレーション、統合テスト用のAPIレスポンスの偽装が必要な際に活用してください。

description の原文を見る

Provides patterns and configurations for running WireMock as a standalone Docker container. Generates mock HTTP endpoints, creates stub mappings for testing, validates integration scenarios, and simulates error conditions. Use when you need to mock APIs, create a mock server, stub external services, simulate third-party APIs, or fake API responses for integration testing.

SKILL.md 本文

WireMock スタンドアロン Docker スキル

概要

WireMock をスタンドアロン Docker コンテナとして実行し、統合テストおよびエンドツーエンドテスト中に外部 API をモック化するためのパターンを提供します。WireMock を独立したサービスとして実行し、HTTP クライアント、リトライロジック、エラーハンドリングをテストするための実際の API 動作をシミュレートします。

使用場面

以下の場合に使用します:

  • 統合テストまたはエンドツーエンドテスト中に外部 API をモック化する必要がある
  • 実際のサービスを使わずにエラー条件(タイムアウト、5xx、レート制限)をシミュレートする
  • HTTP クライアント設定、リトライロジック、エラーハンドリングをテストする
  • ポータブルで再現可能なテスト環境を作成する
  • 実際のサービスを実装する前に API コントラクトを検証する

手順

ステップ 1: Docker Compose のセットアップ

WireMock 3.5.2、ポートマッピング、マッピングおよびファイルのボリュームマウントを含む docker-compose.yml を作成します:

version: "3.8"
services:
  wiremock:
    image: wiremock/wiremock:3.5.2
    ports:
      - "8080:8080"
    volumes:
      - ./wiremock:/home/wiremock
    command: ["--global-response-templating"]

ステップ 2: ディレクトリ構造の作成

WireMock の設定ディレクトリを作成します:

wiremock/
├── mappings/   # JSON スタブ定義
└── __files/   # レスポンスボディファイル

ステップ 3: API マッピングの定義

各シナリオ用に wiremock/mappings/ に JSON スタブファイルを作成します:

  • 成功: 200 と JSON ボディを返す
  • 未検出: 404 を返す
  • サーバーエラー: 500 を返す
  • タイムアウト: fixedDelayMilliseconds を使用
  • レート制限: 429 と Retry-After ヘッダーを返す

ステップ 4: WireMock の起動

docker compose up -d

ステップ 5: WireMock が動作していることを確認

curl http://localhost:8080/__admin/mappings

期待結果: スタブが読み込まれていない場合は空の配列 {"mappings":[]} を返し、またはあなたのスタブ定義を返します。接続拒否エラーが表示される場合は、コンテナが実行されているか確認してください: docker compose ps

ステップ 6: HTTP クライアントの設定

アプリケーションが実際の API ではなく http://localhost:8080 (または Docker ネットワーク内では http://wiremock:8080) を指すようにしてください。

ステップ 7: エッジケースのテスト

常に以下をテストしてください: 200、400、401、403、404、429、500、タイムアウト、不正な形式のレスポンス。

例 1: 成功した GET リクエストをモック化

{
  "request": { "method": "GET", "url": "/api/users/123" },
  "response": {
    "status": 200,
    "jsonBody": { "id": 123, "name": "Mario Rossi" }
  }
}

例 2: サーバーエラーをモック化

{
  "request": { "method": "GET", "url": "/api/error" },
  "response": { "status": 500, "body": "Internal Server Error" }
}

例 3: タイムアウトをモック化

{
  "request": { "method": "GET", "url": "/api/slow" },
  "response": {
    "status": 200,
    "fixedDelayMilliseconds": 5000,
    "jsonBody": { "message": "delayed" }
  }
}

例 4: アプリケーション付き Docker Compose

services:
  wiremock:
    image: wiremock/wiremock:3.5.2
    ports:
      - "8080:8080"
    volumes:
      - ./wiremock:/home/wiremock

  app:
    build: .
    environment:
      - API_BASE_URL=http://wiremock:8080
    depends_on:
      - wiremock

ベストプラクティス

  1. 機能ごとにマッピングを整理する: users/products/ のようなサブディレクトリを使用
  2. マッピングをバージョン管理に含める: 再現可能なテストのためにマッピングを git に保持する
  3. すべてのエラーシナリオをテストする: 401、403、404、429、500、タイムアウト
  4. テスト実行間でリセットする: curl -X POST http://localhost:8080/__admin/reset
  5. わかりやすいファイル名を使用する: get-user-success.jsonpost-user-error.json

制約と警告

  • ポート 8080 が利用可能であることを確認するか、別のポートにマップします
  • 複数のコンテナを実行する場合は Docker ネットワークを設定してください
  • 動的レスポンスのために --global-response-templating を有効にしてください
  • コンテナ再起動時に WireMock はマッピングをリセットします

トラブルシューティング

リクエストがスタブにマッチしない? WireMock が受け取ったものを確認してください: curl http://localhost:8080/__admin/requests — マッチしないリクエストと実際に送信された内容の詳細を表示します。

スタブファイルが読み込まれない? ファイルの場所を確認してください: JSON スタブを wiremock/mappings/ に、レスポンスファイルを wiremock/__files/ に配置します。ファイルのパーミッションを確認してください。

接続拒否エラー? docker compose ps を実行してコンテナが実行されていることを確認します。lsof -i :8080 でポート競合を確認します。

参考資料

references/ で完全な例を参照してください:

  • docker-compose.yml - 完全な Docker Compose 設定
  • wiremock/mappings/ - すべてのシナリオの完全なスタブ例

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
giuseppe-trisciuoglio
リポジトリ
giuseppe-trisciuoglio/developer-kit
ライセンス
MIT
最終更新
不明

Source: https://github.com/giuseppe-trisciuoglio/developer-kit / ライセンス: MIT

関連スキル

汎用ソフトウェア開発⭐ リポ 39,967

doubt-driven-development

重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 1,175

apprun-skills

TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。

by yysun
OpenAIソフトウェア開発⭐ リポ 797

desloppify

コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。

by Git-on-my-level
汎用ソフトウェア開発⭐ リポ 39,967

debugging-and-error-recovery

テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

test-driven-development

テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

incremental-implementation

変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。

by addyosmani
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: giuseppe-trisciuoglio · giuseppe-trisciuoglio/developer-kit · ライセンス: MIT