API first in allen Facetten

Keine Kommentare

In den vorangegangenen Posts taucht immer wieder der Begriff API first und wurde immer dem „Anlass“ entsprechend verwendet. In Vorbereitung auf andere neue Posts bemerkte ich, dass es nun an der Zeit ist, den Begriff in all seinen Facetten zu betrachten. Was ist also mit dem Ansatz „API first“ gemeint?

Zu Anfang aber erstmal ein ziemlich aktuelles Zitat:

don’t think that #APIfirst only works if you design your #API first. the important aspect is to always think about your #API and its value first.

— Erik Wilde, Twitter 10.07.2021, https://twitter.com/dret/status/1413877272344469511

Das was Erik Wilde hier beschreibt, stimmt absolut. Grundsätzlich gilt es vor jedem Schritt in Richtung einer Beschreibung und anschließender Umsetzung einer API zu überlegen, welchen Wert bzw. Stellenwert diese API für die Unternehmung haben wird. Wenn dies geklärt ist, macht es Sinn, die weiteren Schritte in Richtung API first zu gehen. Dies funktioniert auch wenn es schon eine Implementierung für eine solche API existiert.

Wenn man nun API first bei Software-Entwicklungsteams einführen möchte, gilt es, die folgenden drei Prinzipien voranzustellen.

  1. Die API ist die erste Benutzerschnittstelle der Anwendung.

    Die API muss mit dem klaren Fokus auf den Endanwender entwickelt werden. Entwickler müssen der Gestaltung und Pflege einer API die gleiche Aufmerksamkeit zuwenden, wie sie es bei UX und der grafischen Benutzeroberfläche tun.

  2. Die API steht an erster Stelle – vor der Implementierung.

    Durch Weiterentwicklung, Optimierung oder Umstrukturierung kann die Applikation an Funktionalität dazu gewinnen. Ihre API sollte konsistent bleiben. Die API sollte von der Implementierung getrennt behandelt werden. So kann die API zu einem Vertrag werden, der die Implementierung steuert, anstatt nur über der Implementierung zu schweben.

  3. Die API wird erläutert (und ist sogar selbsterklärend).

    Um möglichst schnell und effizient zu sein, muss die API auch für andere, die nicht an ihrer Erstellung beteiligt waren, leicht verständlich sein. Eine brauchbare API-Dokumentation ist die Grundlage, um Inhalte so zu übersetzen, dass sie konsumiert werden können. Dies bedeutet eine strukturierte Dokumentation, die Standardmustern für Elemente wie URLs, Anfragemethoden, Header, Parameterabfragen und zuständige Formate folgt.

Eine detaillierte Darstellung der drei Prinzipien findet man in einem Post von Lars Trieloff (Principal bei Adobe).

Was sind denn die wirklichen Vorteile von API first?

  1. Parallele Softwareentwicklung

    Einer der größten Vorteile von API first für Entwickler und Projektbeteiligte ist die Möglichkeit der parallelen Entwicklung. Wenn man also mit dem Design von APIs beginnt, kann man sicher sein, dass dies zu einer soliden Basis für das angestrebte Produkt führt. So kann sich das Entwicklungsteam bereits in frühen Iterationen auf die IT-Infrastruktur des Produkts konzentrieren. APIs können gleichzeitig entwickelt und getestet werden. Die Teammitglieder arbeiten parallel, was eine Zusammenarbeit in Echtzeit und schnellere Feedback-Zyklen bedeutet. Als Ergebnis werden APIs schnell entworfen, implementiert und dokumentiert, bevor die Kanäle, die sie nutzen werden, eingerichtet werden.

  2. Verbesserte API-Experience

    Bei der Entwicklung einer API ist es wichtig, die Erfahrung des Benutzers in den Vordergrund zu stellen. AX nimmt einen Anwender als Verbraucher, Intermediär oder Endnutzer eines Produkts (einer API) wahr. Dies macht Anwender zu einem Schlüsselelement der Wertschöpfungskette. Sie erstellen APIs und nutzen sie sowohl zum Vorteil des Verbrauchers als auch zum Vorteil des Unternehmens.

    Bei einem API-first-Ansatz geht es darum, dass der Fokus mehr auf dem API-Produkt und weniger auf der Technologie liegt. Daher ist es sinnvoll, eine API zu haben, die funktional ist und von Anwendern leicht genutzt werden kann. Das Ziel einer API ist es, ein reichhaltiges Ökosystem zu schaffen, in dem Anwender mühelos Informationen erhalten und darauf aufbauend Anwendungen erstellen können.

  3. Der beschleunigte Entwicklungsprozess

    APIs beschleunigen den Entwicklungsprozess. Auf den ersten Blick mag es so aussehen, als würde eine API-first-Strategie zu Verzögerungen bei der Markteinführung führen: Anstatt direkt mit dem Schreiben von Code zu beginnen, verbringt das Team Zeit mit der blockierenden Aufgabe der API-Entwicklung. Dem ist jedoch nicht so. Dieser Ansatz ermöglicht die Wiederverwendung bestehender Software und Infrastruktur, was zu schnelleren Softwarelieferungen in der Zukunft führt. Durch die Integration bestehender Komponenten können Prozesse verbessert werden, um eine Beschleunigung der Markteinführung zu ermöglichen.

    Somit ermöglicht ein API-first-Ansatz einem Unternehmen, die gesamte Entwicklungszeit zu optimieren. Agilität kann auch dann erreicht werden, wenn die API nicht alle Funktionen des Systems abdeckt. Durch die schnelle Erstellung einer ersten API für eine Anwendung werden auch die ersten Iterationen bei der Entwicklung der Schnittstelle beschleunigt. Sobald die initiale API definiert ist, ist es einfacher, sie zu erweitern und zu verbessern und neue Funktionen hinzuzufügen. Der Schlüssel ist, Lösungen für die häufigsten Anwendungsfälle anzubieten und eine intuitive Schnittstelle für die Arbeit mit mehreren Datenquellen zu schaffen.

  4. Geringere Ausfallrisiken

    Ein nicht nachhaltiges System, das ein inkonsistentes Kundenerlebnis bietet, hat in der Regel ein hohes Risiko des Scheiterns. Dies ist kein Problem für Teams, die zunächst APIs entwickeln. APIs sind nicht nur die Art und Weise, in der sich Unternehmen darstellen, sondern sie ermöglichen es Organisationen auch, schnell zu wachsen und sich an die sich ändernden Benutzeranforderungen anzupassen. Es ist die Agilität, die Teil einer API-first-Strategie ist, die es ermöglicht, sich schnell an veränderte Anforderungen anzupassen und die Endbenutzer umfassender in den Entwicklungsprozess einzubeziehen.

    Teams, die einen API-first-Ansatz verfolgen, haben in der Regel eine produktbezogene Denkweise. Das bedeutet, dass sie sich darüber im Klaren sind, dass sich das Produkt in der Zukunft weiterentwickeln kann, und dass das gesamte Spektrum der Anwendungsfälle für ihre API möglicherweise nicht von Anfang an klar ist. Aber sie sind bereit, ihre Produkte zu iterieren, um den Benutzern schließlich das zu geben, was sie benötigen. Außerdem sind sie erfahren genug und bereit, zunächst eine konsistente und selbstbeschreibende API zu erstellen, auf die sie sich verlassen können. Durch den Vorteil der Flexibilität, die es erlaubt, das Verhalten der Kunden besser zu verstehen und das Produkt mit einem wesentlich geringeren Risiko des Scheiterns weiter zu verfeinern.

  5. Optimierte Entwicklungskosten

    In der Regel reduzieren APIs selbst keine Kosten. Sie unterstützen jedoch ein breiteres internes Refactoring von Wertschöpfungsketten. Und das ist es, was tatsächlich zur Kostensenkung beiträgt. Der Aufbau eines Ökosystems von APIs als Produkte und Kanäle macht den Code erweiterbar und wiederverwendbar. Wenn also die App-Entwicklung mit dem Aufbau von APIs beginnt, stellt das Team die Wiederverwendbarkeit und Effizienz des Codes sicher. Das macht APIs zur Kerntechnologie in der digitalen Wertschöpfungskette. Erfolgreiche Unternehmen sehen ihre APIs als Ressourcen, die andere Funktionen in der Wertschöpfungskette ermöglichen, und das nicht umsonst.

    Wenn es um einen API-first-Ansatz geht, ist eine der wichtigsten Metriken die Geschwindigkeit, mit der digitale Erlebnisse erstellt werden. Manchmal hat sie direkten Einfluss auf die Entwicklungskosten, manchmal auch nicht. Die Quintessenz ist jedoch, dass ein Team, das zuerst APIs entwickelt, um das Business zu unterstützen, anstatt sich auf die Feinheiten der Implementierung dieser APIs zu konzentrieren, dem Kern, dem Fundament seines Projekts mehr Aufmerksamkeit schenkt. Es gibt eine Basisarchitektur vor, mit der man arbeiten kann, und sichert sich so gegen zu hohe Ausgaben in der Zukunft ab.

Zusammenfassung

Ein API-first-Ansatz kann einen starken Einfluss darauf haben, wie zuverlässig interne und externe Kunden mit Diensten interagieren. Der Ansatz bietet Transparenz, Skalierbarkeit, Leistung und Kostenvorteile. Die Art und Weise, wie APIs angenommen, wahrgenommen und konsumiert werden, ist von großer Bedeutung. Und ein API-first-Ansatz kann die Art und Weise, wie ein Unternehmen seine Infrastruktur organisiert, tatsächlich zum Positiven verändern.

Seit Oktober 2016 ist Daniel Teil des Teams der codecentric in Solingen. Zu Anfang als Consultant mit dem Schwerpunkt auf Application Lifecycle Management, verlagerte sich sein Schwerpunkt immer mehr in Richtung APIs. Neben zahlreichen Kundenprojekten und seinem Engagement in der Open Source-Welt rund um APIs, ist er auch als API-Expert ein gefragter Referent.

Über 1.000 Abonnenten sind up to date!

Die neuesten Tipps, Tricks, Tools und Technologien.
Jede Woche direkt in deine Inbox.

Kostenfrei anmelden und immer auf dem neuesten Stand bleiben!
(Keine Sorge, du kannst dich jederzeit abmelden.)

Kommentieren

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