REST-API-Entwicklung - Was steht bei Verträgen an erster Stelle?

In diesem Artikel befassen wir uns mit einem Ansatz zur Entwicklung einer vertragsbasierten REST-API.

Bei der Entwicklung einer guten REST-API ist es wichtig, über hervorragende Microservices zu verfügen. Mit dem Contract First-Ansatz können Sie einen guten Vertrag entwickeln, bevor er umgesetzt wird. Es ist jedoch nicht so einfach!


Du wirst lernen


  • Was ist ein Contract First-Ansatz zur Entwicklung einer REST-API?
  • Was sind die Vorteile des Contract First-Ansatzes?
  • Was sind die Nachteile des Contract First-Ansatzes?
  • Wann verwenden Sie den Contract First-Ansatz?

REST-API


Dies ist der dritte Artikel in einer Reihe von Artikeln über die REST-API:


Web-Service-Konzept


Es gibt verschiedene Arten von Webdiensten, einschließlich REST und SOAP. Für jeden Dienst gibt es:

  • Der Dienstanbieter, der den Dienst bereitstellt
  • Der Verbraucher des Dienstes, der ihn verwendet

Der Verbraucher muss die Einzelheiten der erbrachten Dienstleistung kennen. Aus diesem Grund muss ein Vertrag geschlossen werden. Der Servicevertrag definiert:

  • Was sind die Vor- und Nachteile des Service?
  • Unter welcher URL ist der Dienst verfügbar?
  • Wie sende ich eine Autorisierung?

Vertrag erster Ansatz


Beim Ansatz „ Contract First “ (Contract First) definieren Sie zuerst den Vertrag und implementieren dann den Service. Schauen wir uns ein Beispiel an.

Wsdl


Betrachten wir zunächst die Verwendung von WSDL, einer Definitionssprache für Webdienste. Hier ist ein Anwendungsbeispiel:



WSDL wird häufig mit SOAP / XML-Webdiensten verwendet. In diesem Fall definieren Sie normalerweise:



Was ist mit einem Vertrag gemeint?


Wenn wir mit dem Abschluss eines Vertrags beginnen, definieren wir die WSDL und teilen sie dann unserem Verbraucher mit. All dies kann passieren, noch bevor wir den Service vorstellen und zur Verfügung stellen.

Der Vertrag sagt dem Verbraucher, wie der Austausch von Anfragen und Antworten erwartet wird. Sobald ein Vertrag abgeschlossen ist, kann ein Dienstleister daran arbeiten, eine vertragsgemäße Dienstleistung zu erbringen. Ein Service-Consumer kann daran arbeiten, eine Anwendung für seine Verwendung zu entwickeln.

Vorteile des Contract First Approach


Teams können sich parallel entwickeln


Da die Codierung auf Verträgen basiert, verstehen Dienstleister und Verbrauchergruppen den Ansatz und die Details der Kommunikation genau. Daher kann die Entwicklung gleichzeitig erfolgen.

Die Teams wissen, was sie zu erwarten haben.


Da die Codierung auf einem Vertrag basiert, haben die Teams von Herstellern und Verbrauchern eine Vorstellung von den Erwartungen des jeweils anderen. Wenn Intergroup-Tests aufgrund unterschiedlicher Entwicklungsraten nicht möglich sind, kann Stub-Software verwendet werden, um das Verhalten der anderen Partei basierend auf dem Vertrag zu modellieren.

Plattformübergreifende Kompatibilität


Da die Dienstparameter nur vom Vertrag abhängen, spielt die tatsächliche Softwarestruktur, die zum Entwickeln des Dienstes verwendet wird, keine Rolle. Der Dienstanbieter und der Dienstverbraucher können unterschiedliche Technologien verwenden.

Ermöglicht die Wiederverwendung von Schemas


Die Schemata, die zum Definieren eines Servicevertrags verwendet werden, sind in der WSDL genau definiert. Wenn daher Teile der Dienste in anderen Diensten wiederholt werden, können die entsprechenden Schemata auch wiederverwendet werden.

Nachteile des Vertrages zuerst


Zusätzliche Vorabkosten erforderlich


Der größte Teil dieser Kosten entfällt auf einen Servicevertrag. Sie müssen sicherstellen, dass der Vertrag klar definiert ist und sich nicht sehr oft ändert.

Mechanismus zur Vertragsverlängerung und zum Austausch


Wenn Sie während der Laufzeit des Dienstes den Vertrag aktualisieren, sind alle anderen Interessenten davon betroffen. Daher muss es einen geeigneten Mechanismus für die Übertragung von Änderungen an verschiedene Verbraucher geben.

Zu diesem Thema gibt es ein Autorenvideo.

Zusammenfassung


In diesem Artikel haben wir den Contract First-Ansatz im Kontext von Webdiensten erörtert.

Zusätzliche Lektüre


Schnelle Anwendungsentwicklung mit API Erster Ansatz mit Open-API Generator

Implementierung einer API-First-Design-Methodik

Source: https://habr.com/ru/post/de483206/


All Articles