最終更新:
スタニスラフ・アニシモフ
契約テスト
Click to expand / collapse

チームまたは外部パートナー間でAPIを使用する場合は、リクエストやレスポンスの形式が予測可能であることが特に重要です。契約テストでは、クライアントとサーバーの双方が交換構造に同意し、更新中に違反しないことを確認できます。

本番環境に入る前に、ドキュメントや消費者の期待に対するAPIのコンプライアンスを自動的にチェックする契約テストを実装します。


API契約とは

契約とは、以下を定義する契約です:
  • リクエストとレスポンスを含むフィールド
  • どのようなデータフォーマットが許可されているか
  • どのステータスコードが返されるか
  • 必須パラメータは何ですか?

契約違反=潜在的な顧客またはサービスの失敗。


どのように機能しますか

パーティーのご案内テストされているもの
プロバイダ(API)APIは、応答構造に対するクライアントの期待に応えなければなりません
お客様(消費者)クライアントは特定のスキームを待っています-テストはそれが満たされていることをチェックします
双方向(双方向)双方向テスト:クライアントとサーバーの両方が契約に同意

使用されるツール:Pact、 Spring Cloud Contract、 Dredd、 Postman Contract Tests。


契約テストの利点

枯渇する前の不適合の特定

顧客を破壊する「沈黙」の変化から保護

APIバージョンを安全に更新

開発チーム間の信頼を高める

契約変更履歴の記録


どのように実装するか

OpenAPI/Pact契約の定義

各コミットでの自動テスト実行とのCI統合

契約変更の可視化と履歴

ステージング/プロダクション

外部インテグレータのパブリッシング契約


特に重要な点

共有責任マイクロサービス

外部B2B統合を備えたプラットフォーム

複数の独立したコマンドを使用したAPIの操作

エラーが受け入れられない重要なシステム(金融、公共サービス)


契約テストは、サーバーとクライアント間の信頼性の高いブリッジです。アップデートが統合を妨げず、予期しないバグをもたらさないプロセスの構築をお手伝いします。

人気トピック


主なトピック