2017-05-11 6 views
2

は、私たちの会社で協定の枠組みを導入しようとしている、との懸念の一つは、以下だった:すべてのコンシューマが同じAPIを同じ方法で使用する場合、すべてのコンシューマ向けに1つのPactファイルが必要ですか?

シナリオ:このXYZ APIは40人の消費者によって呼び出され、すべての消費者は現在、同じ機能を必要とします。では、1つのファイルを維持するのではなく、40個のPactファイルを維持するのはなぜですか?

パクトファイルのメンテナンスを考慮して、各コンシューマに対して1つのパクトファイルを持つよりも優れたアプローチはありますか?

答えて

2

まったく同じ機能を使用するコンシューマが40人いる場合は、これらのすべての操作に単一のファイルを使用することに問題はありません。

しかし、私はこれがあなたのケースであると信じるのは非常に難しいと感じています。実際にはそれを見ている限り、決して実際には起こりません。プロバイダーにはこの機能がすべて備わっている可能性がありますが、コンシューマーが実際に使用しない限り、各コンシューマーはその機能をテストする必要はありません。さらに、各コンシューマは、異なるタイプのデータ、ヘッダまたはURLを使用してこの機能を呼び出したりアクセスしたりする方法が異なる場合があり、ユニークであり、すべての潜在的なケースについてプロバイダを完全にテストする必要があります。

また、コンシューマがこの新しい機能を使用するように更新しない限り、pactファイルを更新する必要はありません。要点は、各コンシューマーとプロバイダーの対話のための独立したファイルを作成しようとすることです。ただし、プロバイダーに複数のコンシューマーがいる場合、保守が増えます。

私たちは、このメンテナンスをより簡単にしたり、影響を最小限に抑えるために、製品の将来のためにできることをご紹介します。

+1

すべての消費者はすべての単一フィールドを使用していますか?消費者がフィールドを使用しないか気にしない場合は、フィールドをpactファイルに含めないでください。これにより、プロバイダは、検証仕様を実行したときに、そのフィールドの変更によって影響を受ける消費者を直ちに確認することができます。実際にAPIの消費者が40人いる場合は、おそらく共有クライアントライブラリを使用している可能性があり、協定はクライアントライブラリとAPIの間にあるだけです。 –

+0

はい、APIは共有ドライブからのダウンロードファイルのようなものです。したがって、すべての消費者は同じ出力を期待しています。 – PaChSu

関連する問題