Lade Veranstaltungen

« Alle Veranstaltungen

betterCode ( ) – Workshop: API-Definition mal anders – Schnittstellen mit Consumer Driven Contracts aus Client-Sicht definieren und testen

23. April

Werner Eberling: API-Definition mal anders – Schnittstellen mit Consumer Driven Contracts aus Client-Sicht definieren und testen

Mit Consumer Driven Contracts (CDC) wird die Herangehensweise der API-Definition 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 Möglichkeit, dies zu tun, ist die Beschreibung der gewünschten Interaktionen und das Testen derselben mittels PACT.

In diesem Workshop lernen Teilnehmerinnen und Teilnehmer am praktischen Beispiel, wie sie PACT Files schreiben, wie diese sowohl zur Client- als auch zur Provider-Verifikation oder zum Mocking verwendet werden können und was sie z.B. von Tools wie Swagger unterscheidet.

Vorkenntnisse

* Kenntnisse in Java und TypeScript sind von Vorteil

Lernziele

* Vorteile, aber auch Grenzen der Interaktionsbeschreibung mittels PACT kennenlernen
* PACT-Tests in den CI-Build integrieren und sogar im Rahmen von CD-Pipelines zur Sicherstellung der Consumer/Provider-Kompatibilität nutzen

Agenda

09:00 – 10:30
Kurze Vorstellungsrunde
Motivation – Warum CDC?
Was ist PACT?
HelloWorld mit PACT (inkl. Übung)
Tolerant Reader am Beispiel
Einsatz eines Pact Mock Servers

11:00 – 12:30
Compatibility Tests mit PACT
Verträge im Unit Test generieren (Java und Typescript) (inkl. Übung)
Provider gegen Vertrag verifizieren (Java) (inkl. Übung)

13:30 – 14:30
Zustände abbilden mit Provider States
Compatibility Tests vs. Acceptance Tests
Kompatibilität des Providers mit Matchern + Typverifikation sicherstellen (inkl. Übung)

15:00 – 16:00
PACT im komplexen Microservices-System
PACT mit externen Systemen
Unterschied zu Swagger/OpenAPI
PACT Broker kurz vorgestellt

Technische Anforderungen

Benötigte Rechnerausstattung
====================
Akt. Laptop mit Windows 10/Linux/MacOS X und Administrator-Rechten
Zugriff auf Mikrofon und Kamera
mind. 8 GB (besser 16 GB) RAM
50 GB freier Festplattenplatz
Internetzugang

Installationen
=========
Apache Maven 3.6 oder höher (mandatorisch)
Java 8 oder höher (https://openjdk.java.net – JDK, nicht die JRE!) – bitte JAVA_HOME richtig setzen! (mandatorisch)
IDE der Wahl (z.B. https://code.visualstudio.com/download ) (mandatorisch)
ZIP-Tool der Wahl (WinZIP, 7-ZIP, …) ( https://7-zip.de/download.html ) (mandatorisch)
Acrobat Reader (mandatorisch)
Chrome (akt. Version) + REST Plugin (Advanced REST client) (mandatorisch)

node.js 11.6.0 oder höher (https://nodejs.org/en/download – zur Ausführung des Angular Beispiels)
npm 6.2.5 oder höher (i.d.R. im node-Download enthalten – zur Ausführung des Angular Beispiels)

Docker 19.03 oder höher (optional – für erweiterte Beispiele mit Pact Broker und Mock Service)
Docker Compose 1.25.5 oder höher (optional – für erweiterte Beispiele mit Pact Broker und Mock Service)

Beispiele und Folien
=============
Bitte Materialien vorab von https://github.com/wern/cdc-ws-hc-20 klonen oder herunterladen und das Projekt Uebungen/MusterloesungenFinal/greeting-consumer einmal per mvn clean install bauen (zum Aufbau des mvn repositories).
Die Folien werden in den nächsten zwei Wochen auch noch in das Repository hochgeladen.

Details

Datum:
23. April
Veranstaltungskategorie:
Veranstaltung-Tags:
, , , ,
Website:
https://www.bettercode.eu/lecture_compact1.php?id=12808&source=0

Veranstalter

heise Developer
iX
dpunkt.verlag GmbH

Veranstaltungsort

Online

Fügen Sie einen Kommentar hinzu

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.