jpskill.com
🛠️ 開発・MCP コミュニティ

api-contract-testing

Verify API contracts between services to ensure compatibility and prevent breaking changes. Use for contract testing, Pact, API contract validation, schema validation, and consumer-driven contracts.

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o api-contract-testing.zip https://jpskill.com/download/21325.zip && unzip -o api-contract-testing.zip && rm api-contract-testing.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/21325.zip -OutFile "$d\api-contract-testing.zip"; Expand-Archive "$d\api-contract-testing.zip" -DestinationPath $d -Force; ri "$d\api-contract-testing.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して api-contract-testing.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → api-contract-testing フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
8

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

API契約テスト

目次

概要

契約テストは、APIがコンシューマーとプロバイダー間の契約を遵守していることを検証します。これにより、完全な統合テストを必要とせずに、サービス変更が依存するコンシューマーを破壊しないことを保証します。契約テストは、リクエスト/レスポンスの形式、データ型、およびAPIの動作を独立して検証します。

使用する場面

  • マイクロサービス間の通信のテスト
  • 破壊的なAPI変更の防止
  • APIバージョニングの検証
  • コンシューマーとプロバイダーの契約のテスト
  • 後方互換性の確保
  • OpenAPI/Swagger仕様の検証
  • サードパーティAPI統合のテスト
  • CIでの契約違反の検出

クイックスタート

最小限の動作例:

// tests/pact/user-service.pact.test.ts
import { PactV3, MatchersV3 } from "@pact-foundation/pact";
import { UserService } from "../../src/services/UserService";

const { like, eachLike, iso8601DateTimeWithMillis } = MatchersV3;

const provider = new PactV3({
  consumer: "OrderService",
  provider: "UserService",
  port: 1234,
  dir: "./pacts",
});

describe("User Service Contract", () => {
  const userService = new UserService("http://localhost:1234");

  describe("GET /users/:id", () => {
    test("returns user when found", async () => {
      await provider
        .given("user with ID 123 exists")
        .uponReceiving("a request for user 123")
        .withRequest({
          method: "GET",
          path: "/users/123",
          headers: {
// ... (see reference guides for full implementation)

リファレンスガイド

references/ ディレクトリ内の詳細な実装:

ガイド 内容
Pact for Consumer-Driven Contracts コンシューマー駆動型契約のためのPact
OpenAPI Schema Validation OpenAPIスキーマ検証
JSON Schema Validation JSONスキーマ検証
REST Assured for Java Java用REST Assured
Contract Testing with Postman Postmanによる契約テスト
Pact Broker Integration Pact Broker統合

ベストプラクティス

✅ 実施すべきこと

  • コンシューマーの視点から契約をテストする
  • 柔軟なマッチングのためにマッチャーを使用する
  • 特定の値ではなく、スキーマ構造を検証する
  • 契約をバージョン管理する
  • エラーレスポンスをテストする
  • 契約共有のためにPact brokerを使用する
  • CIで契約テストを実行する
  • 後方互換性をテストする

❌ 実施すべきでないこと

  • 契約テストでビジネスロジックをテストする
  • 契約に特定の値をハードコードする
  • エラーシナリオをスキップする
  • 契約テストでUIをテストする
  • 契約のバージョン管理を無視する
  • 契約検証なしでデプロイする
  • 実装の詳細をテストする
  • 契約テストをモックする
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

API Contract Testing

Table of Contents

Overview

Contract testing verifies that APIs honor their contracts between consumers and providers. It ensures that service changes don't break dependent consumers without requiring full integration tests. Contract tests validate request/response formats, data types, and API behavior independently.

When to Use

  • Testing microservices communication
  • Preventing breaking API changes
  • Validating API versioning
  • Testing consumer-provider contracts
  • Ensuring backward compatibility
  • Validating OpenAPI/Swagger specifications
  • Testing third-party API integrations
  • Catching contract violations in CI

Quick Start

Minimal working example:

// tests/pact/user-service.pact.test.ts
import { PactV3, MatchersV3 } from "@pact-foundation/pact";
import { UserService } from "../../src/services/UserService";

const { like, eachLike, iso8601DateTimeWithMillis } = MatchersV3;

const provider = new PactV3({
  consumer: "OrderService",
  provider: "UserService",
  port: 1234,
  dir: "./pacts",
});

describe("User Service Contract", () => {
  const userService = new UserService("http://localhost:1234");

  describe("GET /users/:id", () => {
    test("returns user when found", async () => {
      await provider
        .given("user with ID 123 exists")
        .uponReceiving("a request for user 123")
        .withRequest({
          method: "GET",
          path: "/users/123",
          headers: {
// ... (see reference guides for full implementation)

Reference Guides

Detailed implementations in the references/ directory:

Guide Contents
Pact for Consumer-Driven Contracts Pact for Consumer-Driven Contracts
OpenAPI Schema Validation OpenAPI Schema Validation
JSON Schema Validation JSON Schema Validation
REST Assured for Java REST Assured for Java
Contract Testing with Postman Contract Testing with Postman
Pact Broker Integration Pact Broker Integration

Best Practices

✅ DO

  • Test contracts from consumer perspective
  • Use matchers for flexible matching
  • Validate schema structure, not specific values
  • Version your contracts
  • Test error responses
  • Use Pact broker for contract sharing
  • Run contract tests in CI
  • Test backward compatibility

❌ DON'T

  • Test business logic in contract tests
  • Hard-code specific values in contracts
  • Skip error scenarios
  • Test UI in contract tests
  • Ignore contract versioning
  • Deploy without contract verification
  • Test implementation details
  • Mock contract tests

同梱ファイル

※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。