api-contract-sentinel は何をしますか?
APIをOpenAPI、AsyncAPI、JSON Schema、protobuf、またはPRDのコントラクトと照合し、リリース前にドリフトを検出します。
概要
このスキルは、APIの実装とその定義されたコントラクト(仕様書)との間の乖離(ドリフト)を自動的に監査します。様々なコントラクト形式に対応しており、CI/CDパイプラインや開発ワークフローに統合して使用できます。
サポートするコントラクト形式
- OpenAPI (Swagger) 2.0 / 3.0
- AsyncAPI 2.0+
- JSON Schema
- Protocol Buffers (protobuf)
- 製品要件定義書 (PRD)
使用方法
基本的な使い方
contract-sentinel audit --contract ./api-spec.yaml --endpoint https://api.example.com
CI/CDパイプラインへの統合
GitHub Actionsの例:
name: API Contract Audit
on:
pull_request:
paths:
- 'api-spec.yaml'
- 'src/**'
jobs:
audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run Contract Audit
uses: jovd83/api-contract-sentinel@v1
with:
contract: 'api-spec.yaml'
endpoint: ${{ secrets.API_ENDPOINT }}
設定オプション
| オプション | 説明 | デフォルト値 |
|---|---|---|
--contract | コントラクトファイルのパス | 必須 |
--endpoint | 監査対象のAPIエンドポイント | 必須 |
--strict | 厳格モード(警告もエラーとして扱う) | false |
--output | 出力形式(json, table, junit) | table |
環境変数
API_KEY: API認証用のキー (オプション)AUDIT_LEVEL: 監査の詳細度 (info, warn, error)
出力例
+-------------+----------------+-------------------------+-------------+
| エンドポイント | 期待される状態コード | 実際の状態コード | ステータス |
+-------------+----------------+-------------------------+-------------+
| GET /users | 200 | 200 | ✓ 一致 |
| POST /users | 201 | 400 | ✗ 不一致 |
+-------------+----------------+-------------------------+-------------+
注意事項
- このスキルは、完全な置き換えではなく、手動レビューの補助として使用してください。
- PRDコントラクトの場合は、自然言語処理を使用して要件を解析するため、精度が低下する可能性があります。
- 大量のエンドポイントがあるAPIの場合は、
--strictモードの使用を推奨しません。
ライセンス
MIT