REST-API-Entwicklung - Was ist der Code First-Ansatz?

In diesem Artikel werden wir uns weiterhin mit der Entwicklung der REST-API vertraut machen und den Code-First-Ansatz betrachten.

Die Entwicklung einer guten REST-API ist wichtig, um gute Microservices zu erhalten. Der Code-First-Ansatz konzentriert sich auf das Generieren eines Vertrags aus Code. Ist das der bestmögliche Ansatz?


Du wirst lernen


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

REST-API


Dies ist der vierte Artikel in einer Reihe von Artikeln zur REST-API:


Was ist der Code-First-Ansatz?


Wann immer Sie einen Service entwickeln, z. B. eine REST-API oder eine SOAP-API, können Sie einen von zwei Ansätzen wählen:

  • Code Zuerst einen Vertrag aus dem Code generieren
  • Contract First und vertragsbasierte Codeentwicklung

Beginnen wir mit einem kurzen Beispiel für Code First.

Beispiel für die erste REST-API mit Spring Boot Code


Wir entwickeln einen RESTful-Webdienst mit dem Spring Boot Framework, um die API zu generieren. Zum Beispiel öffnen wir in der retrieveAllUsers () API den URI " / users " und
wir geben alle Benutzer zurück (Ressource / Benutzer ),
Aufrufen der Dienstmethode.

Wenn wir zu dieser URL gehen, geben wir alle Benutzer zurück:


Andere Dienstmethoden sind ähnlich definiert, von denen jede ihre eigene URI hat. In diesem Beispiel nehmen wir den Code und generieren daraus Dokumentation. Diese Dokumentation beschreibt, wie der Benutzer den Dienst nutzen kann. Dazu verwenden wir das Swagger-Dokumentationsformat:



Mit Swagger können wir Dokumentation aus Code generieren. Folgendes generiert Swagger beispielsweise, um alle Benutzer aufzufordern:



Es zeigt den Typ der erhaltenen Antwortnachricht und den zugehörigen Antwortstatus an. Sie können diesen Service auch von Swagger aus anrufen, um eine Antwort zu erhalten:



Sie können auch eine POST- Anfrage an " / users " senden:



Swagger teilt uns mit, wie die Anforderungsnachricht zu strukturieren ist und welche einzelnen Feldformate darin enthalten sind. Er teilt Ihnen auch die Art der Antwort mit, die Sie erhalten, zusammen mit dem Antwortcode. Was Swagger aus Code generiert, wird als Vertrag bezeichnet .

Vorteile von Code First


Die Hauptvorteile dieses Ansatzes:

  • Verträge mit minimalem Aufwand : Die Erstellung eines Vertrages erfordert keinen zusätzlichen Aufwand. Dies ist nur ein Nebenprodukt der Serviceentwicklung, da es automatisch aus Code generiert werden kann.
  • Code- und Vertragssynchronisation : Da der Vertrag aus dem Code generiert wird, werden sie immer miteinander synchronisiert

Nachteile von Code First


Die Nachteile dieses Ansatzes sind wie folgt:

Keine parallele Entwicklung


Ein Dienstleister und ein Dienstleister können sich nicht parallel entwickeln. Zuerst müssen Sie einen Service entwickeln und dann einen Vertrag erstellen. Erst danach können Sie einen Kundencode schreiben, der dem Vertrag entspricht. Ohne das Verständnis des Vertrages kann der Verbraucher nicht entwickelt werden.

Kein Ziel für Teams


Da der Vertrag nicht bekannt ist, bevor der Service entwickelt wurde, gibt es für verschiedene Stakeholder keinen Grund für die Entwicklung. Daher besteht die Möglichkeit, dass die Anweisungen abweichen und unnötige Änderungen vorgenommen werden, die zu einer Verschwendung von Aufwand führen.

Keine plattformübergreifende Kompatibilität


Auf einigen älteren Plattformen ist es nicht so einfach, einen Vertrag aus Code zu generieren. Infolgedessen tritt bei generierten Verträgen häufig eine Inkompatibilität zwischen Plattformen auf.

Zu diesem Thema gibt es ein Autorenvideo.

Zusammenfassung


In diesem Artikel haben wir den Code First-Ansatz zum Erstellen einer REST-API untersucht. Obwohl der Code-basierte Ansatz aus Sicht des Entwicklers effektiv ist, sieht er sich ernsthaften Problemen gegenüber, wenn es um die gemeinsame Entwicklung eines Anbieters und eines Verbrauchers geht.

Zusätzliche Lektüre


API-Entwicklung: Design-First oder Code-First?
Entwickeln eines RESTful-Webdiensts in der ASP.NET-Web-API

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


All Articles