Pixel-Shot - stock.adobe.com

Was für einen API-first-Ansatz bei der Entwicklung spricht

Der Code-first-Ansatz verliert an Attraktivität, da die Architekturen immer komplexer werden. Erfahren Sie, warum sich der API-first-Ansatz in der Entwicklung durchsetzt.

Für Jahrzehnte haben Softwareteams, die für die Entwicklung und Verwaltung von zentralen Geschäftsanwendungen verantwortlich sind, loyal an Code-first-Entwicklungspraktiken festgehalten. Das heißt, sobald ein Unternehmen seine Softwareanforderungen festgelegt hat, begannen die Entwickler direkt mit der Programmierung der Anwendungen und passten den Code im Laufe der Zeit an, um auf Probleme oder aktualisierte Anforderungen zu reagieren.

Während dieser Ansatz innerhalb der Grenzen monolithischer Systeme, die meist auf einer einzigen Sprache oder einem einzigen Framework basieren, völlig in Ordnung war, ist diese Praxis immer weniger effektiv, da die Architekturen zunehmend aus verschiedenen Sprachen, Protokollen, Kommunikationsmechanismen und API-Integrationen bestehen.

Entwicklungsstrategien, die sich auf Code-first-Designtechniken stützen, sind immer weniger effizient, da sich sowohl die Entwicklungslandschaft als auch die Raffinesse der Programmierschnittstellen, kurz APIs, weiterentwickeln. Softwaretrends wie Microservices, Serverless Computing und Edge Computing haben den Bedarf an Strategien erhöht, die das Entwicklungstempo beschleunigen, darunter die Fokussierung auf APIs. Das hohe Maß an Autonomie, das durch die API-first-Entwicklung gefördert wird, macht sie zu einem logischen Ziel, wenn eine Organisation von monolithischen Anwendungsarchitekturen zugunsten dynamischerer Design- und Entwicklungsparadigmen abweicht.

In diesem Artikel werden wir uns die grundlegenden Ideen ansehen, die der API-first-Entwicklung zugrunde liegen, die Vor- und Nachteile dieses Ansatzes untersuchen und einige Tools erkunden, die Unternehmen bei der sicheren Einführung eines API-first-Ansatzes für das Softwaredesign helfen sollen.

Was ist API-first?

Ein API-first-Ansatz besagt, dass Programmierer genau festlegen, wie sich die API verhalten soll und welche spezifischen Geschäftsanforderungen sie erfüllen muss, bevor die eigentliche Codierung beginnt. Das API-first-Design ermutigt Entwickler außerdem dazu, eine kontrollierte Fail-Fast-Methodik für Updates, Codeänderungen und Funktionserweiterungen anzuwenden. Teams können eine einzelne Anwendung als einen Katalog kleiner Funktionseinheiten mit in sich geschlossenen Prozessen und eigenen, leichtgewichtigen Kommunikationsmechanismen aufbauen.

Zu Beginn müssen die Entwicklungsteams die spezifischen Funktionen und Daten dokumentieren, die benötigt werden, um eine bestimmte Geschäftsaufgabe zu erfüllen, ein bestimmtes Problem zu lösen oder eine bestimmte Fähigkeit zu einer bestehenden Software hinzuzufügen. Dies dient als Liste der wichtigsten Funktionen und Dienste, die die APIs bereitstellen müssen. Von hier aus können die Entwickler den automatisierten Arbeitsablauf und die Überprüfungszyklen skizzieren, die eingerichtet werden müssen. Sobald die Teams mit der Struktur und dem Design der APIs und ihrem geplanten Lebenszyklus zufrieden sind, können sie mit dem Schreiben der Codeblöcke beginnen, aus denen diese APIs und schließlich die Anwendung bestehen werden.

Abbildung 1: Die Vorteile von API-Managementsoftware.
Abbildung 1: Die Vorteile von API-Managementsoftware.

Die Leiter der Entwicklungsteams müssen sicherstellen, dass klar definierte API-Verträge erstellt werden, die Codierungsverfahren durchsetzen und Benchmarks für Dinge wie Leistung, Fehlerraten und Verfügbarkeit liefern. Sowohl eine anschauliche Dokumentation als auch eine klare Kommunikation haben hier hohe Priorität, insbesondere bei der Arbeit in verteilten Entwicklungsteams, die in verschiedenen Zeitzonen arbeiten. Diese Dokumentation sollte Dinge wie Anforderungs-Checklisten, Screenshots und Links zu verwandten Systementwürfen enthalten.

Vor- und Nachteile eines API-first-Ansatzes

Die Einführung eines API-first-Ansatzes ermöglicht es Unternehmen, schnell wiederverwendbare Anwendungsfunktionen zu erstellen und diese Funktionen dann unmittelbar über mehrere Geräte und Kanäle hinweg einzusetzen. Außerdem kann der Prozess der Anpassung von Anwendungen an neue Endbenutzeranforderungen und sich ändernde Compliance-Anforderungen dank beschleunigtem Prototyping und Testen vereinfacht werden. Unternehmen wie Netflix, Amazon, Etsy und Uber haben durch eine Kombination aus API-first-Design und Microservices-Strategien eine beispiellose Skalierbarkeit erreicht.

Die API-first-Entwicklung erfordert jedoch eine beträchtliche Vorausplanung, insbesondere in großen Unternehmen, in denen sowohl Geschäfts- als auch Entwicklungsteams neue Designmethoden, Entwicklungsabläufe und Strategien erlernen müssen. Eine API-first-Umstellung geschieht nicht von allein und erfordert engagierte IT-Führungskräfte und die Zustimmung der Unternehmensleitung.

Eine sorgfältige Integration und Prüfung ist ein obligatorischer Bestandteil der API-first-Einführung. Wenn Programmierer die Parität zwischen mehreren Komponenten in der Entwicklungspipeline nicht aufrechterhalten können, werden die Systeme von chronisch unangepasstem Code, Mock-Servern, Testautomatisierungsprozessen und Dokumentation geplagt. API-first stellt ein ernsthaftes Entwicklungsvorhaben dar, insbesondere dann, wenn Fehler in der Live-Implementierung die einzige Möglichkeit sind, bestimmte Fehler und ihre möglichen Ursachen zu identifizieren.

Tools für die API-first-Entwicklung

Neben einem klar definierten API-Vertrag kann ein API-Styleguide dabei unterstützen, wichtige Aspekte der Fehlerbehandlung, die Durchsetzung von Codeformaten, Versionsstrategien und andere Standardwartungsprozesse zu strukturieren. Zu diesem Zweck bieten viele API-Managementanbieter Tools an, die speziell auf die Unterstützung eines API-first-Designansatzes abgestimmt sind.

Im Folgenden finden Sie eine Auswahl gut gestalteter, umfassender API-Management-Tools, von denen einige als Open-Source-Projekte verfügbar sind:

SwaggerHub

SwaggerHub ist eine API-Entwicklungs- und Dokumentationsplattform, die einen vielseitigen Satz von Tools zur Unterstützung eines API-first-Ansatzes bietet. Dazu gehören Swagger Editor und SwaggerUI, die beide Teil der API-Bereitstellungsfähigkeiten der Plattform sind. SwaggerHub kann als zentrale Quelle für Test- und Bereitstellungsstandards für API-first-Projekte fungieren und vereinfacht den Prozess für Entwickler, die notwendigen Styleguides und Dokumentationen innerhalb einer Organisation zu veröffentlichen.

FastAPI

FastAPI ist ein Open-Source-Web-Framework, das auf API-first-Projekte ausgerichtet ist und auf eine Weise funktioniert, die Entwicklern, die mit Node.js und Go arbeiten, vertraut sein sollte. Einer der Vorteile von FastAPI ist, dass es hauptsächlich auf Python basiert und Entwicklern Zugang zu den API-spezifischen Unterstützungsfunktionen und Bibliotheken der Sprache bietet. Dazu gehört die asyncio-Bibliothek, die eine Vielzahl von High-Level- und Low-Level-APIs enthält, die auf die Unterstützung gleichzeitiger Anwendungsprozesse abgestimmt sind.

Anypoint API Manager

Der Anypoint API Manager von Mulesoft ist ein Tool zur Modellierung und Beschreibung von API-first Designspezifikationen und bietet signifikante Unterstützung für diejenigen, die OAS oder RAML verwenden. Der API Manager hilft bei der Generierung von Dokumentation, der Erstellung von Mock-APIs und der Durchführung von Service-Integrationsaufgaben. API Connect ermöglicht Entwicklern die Erstellung wiederverwendbarer API-Komponenten, die als RAML-Fragmente bekannt sind, und wird in Verbindung mit Anypoint Studio, der Eclipse-basierten Integrationsumgebung von Mulesoft, zu einem besonders leistungsfähigen Tool.

Abbildung 2: Wer für eine API-Strategie verantwortlich ist.
Abbildung 2: Wer für eine API-Strategie verantwortlich ist.

Postman

Postman ist eine Plattform für API-Builds und -Deployments und legt einen starken Fokus auf Dokumentation, Monitoring, automatisierte Tests und die Erstellung von Mock-APIs. Entwickler können schnell API-Testsuiten hinzufügen, die Probleme bei der Integration, der Leistung und der Einhaltung von API-Verträgen überprüfen. Postman verfügt über einen integrierten Editor, der Entwicklern bei der Definition von APIs anhand von Standardspezifikationen wie Open API, RAML und GraphQL hilft und es Teams sogar ermöglicht, ihre eigenen Spezifikationen in ein bestehendes Projekt zu importieren.

ReadyAPI

Die ReadyAPI-Plattform von Smartbear bietet eine Reihe nützlicher API-first-Design-Tools, von denen sich viele auf die Erstellung von CI/CD-Integrationen mit JIRA, Git, Slack und Jenkins konzentrieren. Begleitende Tools wie SoapUI, LoadUI und ServiceV bieten weitere Test- und Simulationsfunktionen für RESTful- und SOAP-basierte APIs und erhöhen die Attraktivität von ReadyAPI als zentraler Knotenpunkt für die API-Designprojekte eines Unternehmens. Es ist eine besonders gute Option für Unternehmen, die mit strengen Sicherheits- und Leistungsanforderungen konfrontiert sind.

Erfahren Sie mehr über Softwareentwicklung