DSL のカスタマイズ

このセクションは、Groovy DSL に対してのみ有効です

このセクションの残りの部分で示すように、DSL を継承することで Spring Cloud Contract Verifier をカスタマイズできます。

DSL の拡張

独自の関数を DSL に提供できます。この機能の主な要件は、静的な互換性を維持することです。この章の後半で、次の例を参照できます。

  • 再利用可能なクラスを含む JAR を作成します。

  • DSL でのこれらのクラスの参照。

完全な例はここにあります。

共通 JAR

次の例は、DSL で再利用できる 3 つのクラスを示しています。

PatternUtils (英語) には、コンシューマーとプロデューサーの両方で使用される関数が含まれています。

ConsumerUtils (英語) には、コンシューマーが使用する機能が含まれています。

ProducerUtils (英語) には、プロデューサーが使用する関数が含まれています。

プロジェクトの依存関係にテストの依存関係を追加する

プロジェクトの依存関係にテストの依存関係を追加するには、まず共通の jar 依存関係をテストの依存関係として追加する必要があります。契約 ファイルはテストリソースパスで利用できるため、共通の jar クラスが自動的に Groovy ファイルに表示されるようになります。次の例 (英語) は、依存関係をテストする方法を示しています。

プラグインの依存関係にテストの依存関係を追加する

ここで、実行時に再利用するプラグインの依存関係を追加する必要があります。

DSL でのクラスの参照

次の例に示す (英語) ように、DSL でクラスを参照できるようになりました。

convertToYaml を true に設定することで、Spring Cloud Contract プラグインを設定できます。こうすることで、コンシューマー側は Groovy 契約ではなく YAML 契約を使用するため、コンシューマー側に拡張機能の依存関係を追加する必要がなくなります。