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

api-contract-testing

APIサービス間のコントラクトを検証し、互換性の確保と破壊的変更の防止を行います。コントラクトテスト、Pact、APIコントラクト検証、スキーマ検証、コンシューマー駆動コントラクトに活用できます。

description の原文を見る

> 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.

SKILL.md 本文

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: {
// ... (詳細な実装はリファレンスガイドを参照)

リファレンスガイド

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

ガイド内容
コンシューマー駆動コントラクト向け Pactコンシューマー駆動コントラクト向け Pact
OpenAPI スキーマ検証OpenAPI スキーマ検証
JSON スキーマ検証JSON スキーマ検証
Java 向け REST AssuredJava 向け REST Assured
Postman によるコントラクトテストPostman によるコントラクトテスト
Pact Broker 統合Pact Broker 統合

ベストプラクティス

✅ DO

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

❌ DON'T

  • コントラクトテストでビジネスロジックをテストしない
  • コントラクトに特定の値をハードコードしない
  • エラーシナリオをスキップしない
  • コントラクトテストで UI をテストしない
  • コントラクトバージョニングを無視しない
  • コントラクト検証なしでデプロイしない
  • 実装詳細をテストしない
  • コントラクトテストをモックしない

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

詳細情報

作者
aj-geddes
リポジトリ
aj-geddes/useful-ai-prompts
ライセンス
MIT
最終更新
不明

Source: https://github.com/aj-geddes/useful-ai-prompts / ライセンス: 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 フォームよりご連絡ください。
原作者: aj-geddes · aj-geddes/useful-ai-prompts · ライセンス: MIT