API-Design – Praxishandbuch für Java- und Webservice-Entwickler

Das Thema API-Design mag auf den ersten Blick recht klein erscheinen. Doch wie der Kai Spichale zeigt, gibt es viel um die Schnittstelle herum zu bedenken. Vieles davon spricht er in seinem Buch "API-Design" an.

In Pocket speichern vorlesen Druckansicht 2 Kommentare lesen
API-Design – Praxishandbuch für Java- und Webservice-Entwickler

(Bild: Wikipedia: BS Thurner Hof)

Lesezeit: 4 Min.
Von
  • Michael Müller

Kai Spichale
API-Design
Praxishandbuch für Java- und Webservice-Entwickler

dpunkt.verlag, 2016
XXI + 347 Seiten, € 34,90
ISBN 978-3-86490-387-8

Ein Application Programming Interface stellt die Schnittstelle von Software nach außen dar. Egal ob es sich dabei nur um ein Modul, eine ganze Bibliothek oder einen Service handelt. Und wenn diese Schnittstelle von anderen genutzt wird, wird sie zum Vertrag, den es einzuhalten gilt, will man die Nutzbarkeit sicherstellen. Insofern kommt dem gelungenen Design einer API besondere Bedeutung zu. Bietet ein Unternehmen Software in Form von Diensten an, lässt sich der API gar eine geschäftskritische Bedeutung zusprechen. Gründe genug, sich mit dem API-Design ausführlich auseinanderzusetzen.

Kai Spichale führt zunächst in das Wesen einer API ein, beschreibt Vor- und Nachteile und erläutert diverse Qualitätsmerkmale sowie das allgemeine Vorgehen beim API-Design, um dann recht ausführlich auf zwei grundlegende Formen von Schnittstellen einzugehen: Da sind zum einen die sprachabhängigen Schnittstellen, auf die er am Beispiel Java eingeht. Zum anderen aber auch sprachunabhängige Schnittstellen. Und hier wählt er Remote-Schnittstellen wie sie für moderne Webapplikationen genutzt werden. Damit bietet er Schnittstellenwissen in zwei maßgeblichen Technologien.

Natürlich muss eine Schnittstelle leicht verständlich gestaltet werden und sich dem Anwender intuitiv über gut gewählte Namen präsentieren. Mit diesem und anderen Aspekten streift das Buch Bereiche, die auch schon an anderer Stelle thematisiert wurden. Doch hält der Autor solche Aspekte überschaubar lang und verweist auf die etablierte Literatur, sodass er das Hauptaugenmerk auf das Thema Schnittstelle richten kann.

Und da gibt es viel zu beachten und Wissen zu vermitteln. So stellt Spichale beispielsweise Überlegungen zur Kompatibilität von Schnittstellen an. Wie lässt sich eine Schnittstelle kompatibel erweitern? Wann bricht die Kompatibilität? Oder: Wie gestaltet man eine Schnittstelle, zum Beispiel als Wrapper, Fluent Interface oder anders? Wie erstellt man Schnittstellen, wenn Framework-Entwickler Callbacks anbieten möchte?

Bei den Java-Schnittstellen orientiert sich Spichale recht eng an Java. Hier gibt es bereits viele technische Vorgaben durch die Programmiersprache. Beim Thema Web-API holt der Autor jedoch weiter aus. Schließlich soll eine solche möglichst sprachunabhängig gestaltet werden. So wird die Kenntnis von Architekturstilen wie REST oder Protokollen wie SOAP, um nur wenige zu nennen, in diesem Bereich wichtig. Entsprechend löst sich der Autor immer wieder vom eigentlichen API-Dessign und geht auf die genannten Themen ein. So bietet er dem Leser einen breiten Wissensfundus, aus dem dieser bei Entwurf und Bewertung eigener Schnittstellen schöpfen kann. In diesen Bereich passen dann auch die übergreifenden Themen des letzten Teils: Dokumentation, Caching, Skalierung oder API-Management.

Das Thema API-Design mag auf den ersten Blick recht klein erscheinen. Doch wie der Autor zeigt, gibt es viel um die Schnittstelle herum zu bedenken. Vieles davon spricht er in seinem Buch an. Und so wird aus dem scheinbar dünnen Thema ein recht ansehnliche Buch, gerade so dick, dass es nicht zu lang wird. Dazu ansprechend geschrieben, mit Grafiken untermalt und zahlreichen Listings versehen, lässt es sich recht gut in Gänze lesen. Der Autor bietet dem Leser zwar unterschiedliche, kürzere Pfade durch das Buch, doch die kann sich der geneigte Leser für eine spätere Auffrischung aufbewahren.

Michael Müller
ist als Bereichsleiter Softwareentwicklung der InEK GmbH verantwortlich für Projekte im Web-, Java- und .NET-Umfeld. Daneben betätigt er sich als freier Autor und verfasst Fachartikel zu diversen Entwicklungsthemen sowie Buchrezensionen.

(Der dpunkt.verlag gehört zur Heise Gruppe, die auch heise Developer herausgibt; Anm. d. Red.) (ane)