APIs Zweck und Nutzen
Das Buch "Mastering API Architecture" der beiden Java-Champions James Gough und Daniel Bryant sowie von Matthew Auburn behandelt in drei Haupt- und zehn Unterkapiteln, wie APIs entwickelt, getestet, betrieben und angepasst werden können. Als Leser werden dabei vor allem Tecleads und Architekten angesprochen. Für die Bilder werden die Diagrammarten Context, Container und Componenten der C4-Methode verwendet. Sowohl das Design von Schnittstellen als auch die Auswahl von API-Standards oder Produkten werden durch ADRs (Architecture Decisions Records) dokumentiert.
Als durchgängiges Fallbeispiel wird ein Konferenzsystem schrittweise von einer monolithischen Webanwendung mit einer Altanwendung hin zu einer serviceorientierten mobilen Anwendung mit API-Gateway in der Cloud weiterentwickelt. Bei den verwendeten Produkten API-Gateway und Service Mesh wird kurz auf deren historische Entwicklung eingegangen und es werden Kriterien für ihre Auswahl oder Verwendung gegeben. Neben REST mit OpenAPI wird auch auf GraphQL und gRPC eingegangen. Dabei geht das Buch auf die wichtigen Themen Testen, Absichern, Authentifizierung und Autorisierung ein.
APIs ermöglichen Architekturevolution
Die ersten beiden Kapitel bieten die Grundlagen. Die Folgekapitel im zweiten Hauptkapitel behandeln das Thema API Traffic Management mit API-Gateways (Nord-Süd) und Service Mesh (West-Ost). Die Fallstudie wird dann um ein API-Gateway auf Kubernetes erweitert, um einen Dienst aus dem Altsystem anbieten zu können. Das dritte Hauptkapitel behandelt das wichtige Thema API-Betrieb und Absicherung. Kleinere Änderungen kann man mit Feature Flags und anderen Release-Strategien separat deployen. Auch das Thema Überwachbarkeit, Logging, Debugging und Caching spielt eine wichtige Rolle.
APIs sind wichtige Komponenten, um ein System an die geänderten Anforderungen anpassen zu können. Sie fördern eine hohe Kohäsion und geringe Kopplung. Kohäsion kann viele Aspekte haben, wie Abhängigkeiten zur Umgebung und ausgewogener Einsatz von Abstraktionen.
Die Kapitel 8 und 9 in dem letzten Hauptkapitel sind für mich die interessantesten, da hier noch mal wichtige Muster zum Zerlegen und Weiterentwickeln eines Systems vorgestellt werden und wie die Fallstudie in die Cloud migriert werden kann. Hier wird auf die Rolle von Service Mesh in einer Zero Trust Architecture eingegangen. Im Abschlusskapitel 10 wird die Fallstudie noch mal zusammengefasst und einen Ausblick auf zukünftige Themen, wie AsyncAPI und HTTP/3, gegeben.
Fazit
APIs spielen im Design und der Weiterentwicklung von Systemen eine wichtige Rolle. Deswegen passt auch der Untertitel des Buchs "Design, Operate, and Evolve API-Based Systems" gut. Eine Ablösung von Altsystemen kann auch durch eine schrittweise Migration in die Cloud erfolgen. Hier gilt es, die neuen Möglichkeiten von API-Gateway und Service Mesh zu nutzen. Das Buch gibt dazu einige anregende Tipps.
Zum Titel:
Buchcover zu Mastering API Architecture
Titel: Mastering API Architecture. Design, Operate, and Evolve API-Bases Systems
Autoren: James Gough, Daniel Bryant, Matthew Auburn
Seiten: 248
Verlag: O'Reilly Media
Jahr: 2023
ISBN: 978-1492090632