Schnittstellen mit Consumer Driven Contracts (CDC) definieren und testen

Beschreibung:

"Der Client braucht das so!" Dieser Satz oder so ähnliche Sätze fallen beim Design einer neuen Serviceschnittstelle häufig. Gleich gefolgt von "Wir machen die Schnittstelle etwas breiter, dann ist der Dienst wiederverwendbar." Aber hat eigentlich mal jemand den Client gefragt, was er wirklich will? Und warum will eigentlich jeder Nutzer eines Dienstes etwas anderes?

Generische, vom Dienstanbieter geschnittene APIs sind wie allgemeine Datenmodelle. Nicht die Menge aller Weisheit, sondern die Summe aller Kompromisse. Und leider selten wirklich gut.

Mit Consumer Driven Contracts (CDC) wird die Herangehensweise umgedreht und auf das wesentliche reduziert. Nicht der Dienstanbieter sagt was er kann, jeder Client definiert, was er braucht. Und mehr bekommt er auch nicht.

Eine beliebte Möglichkeit dies zu tun, ist die Beschreibung der gewünschten Interaktionen und das Testen der selbigen mittels PACT. Das Training zeigt, wie mit PACT Files Client-Interaktionen beschrieben werden. Wie diese sowohl zur Client- als auch zur Provider-Verifikation oder zum Mocking verwendet werden können und was sie von Schnittstellendokumentation (a la Swagger) unterscheidet.

Inhalt:

  • Warum Consumer Driven Contracts?
  • Schnittstellen über Interaktionen definieren
  • Pact Files
  • Pact Generierung im Unittest
  • Consumer mit Pact testen
  • Provider mit Pact verifizieren
  • Provider States und Matcher
  • Pact Broker
  • CDC als Teil des CI-Builds
  • Mocking mit Pact (Möglichkeiten und Grenzen)