In der IT, insbesondere in der Software Entwicklung, stößt man immer wieder auf dem Begriff API.
API ist die Abkürzung für "Application Programming Interface". Eine API ist also eine Schnittstelle, die es ermöglicht, dass 2 verschiedene Komponenten (Software- bzw. Hardwarekomponenten) miteinander kommunizieren können. Bei Webapplikationen trifft man heutzutage oft auch auf sogenannte REST APIs, die die Daten im Form von JSON austauschen.
APIs in der Software Entwicklung
In der Software Entwicklung sind APIs nicht mehr wegzudenken und kommen daher sehr häufig zum Einsatz. Die Anzahl an APIs weltweit wächst täglich. Alles was Anwendungen nach außen hin kommunizieren möchten, geschieht mittels einer API. Eine solche Schnittstelle hat einen definierten Service Contract, in dem klar hervorgeht, welche Methoden zur Verfügung gestellt werden und wie man diese anspricht, dh welche Parameter übergeben werden müssen. Zudem ist darin beschrieben, welche Antwort (response) man erwarten darf.
APIs ermöglichen somit den Austausch von Daten zwischen 2 verschiedenen Systemen, wobei diese beiden Systeme nur über die API miteinander verbunden sind. So kann eine C# Software Anwendung mit einer PHP Webapplikationen über diese API Daten austauschen, ohne dass sich diese 2 Systeme genauer kennen. Die beiden Systeme können somit auch laufend geändert werden, ja sogar refactored werden. Solange die API sich nicht ändert, bleiben beide Systeme stets kompatibel.
In der Software Entwicklung sollte daher ein besonderer Augenmerk auf die Entwicklung von APIs gerichtet werden. Je mehr Entwickler eine neu entwickelte API absegnen desto besser. Denn eine einmal releaste API, die in weitere Folge von anderen Systemen genutzt wird, lässt sich schwer bis gar nicht ändern. Änderungen am Contract können dann nur mehr über verschiedene API Versionen durchgeführt werden, ansonsten würde die Kompatibilität der beiden Systeme gebrochen werden.
Dokumentation von APIs
Gute APIs sind selbsterklärend, trotzdem sollte jede API ausführlichst dokumentiert werden. Eine Schnittstellenbeschreibung erstellt man in der modernen Softwareentwicklung meist mittels einem YAML. Dieses YAML kann in weiterer Folge unkompliziert bei sogenannten Online Dokumentations Portalen hochgeladen werden. Es wird nach dem Upload automatisch aus dem YAML eine interaktive Schnittstellen Doku erstellt, die es auch erlaubt, mit der API zu interagieren. Der Entwickler, der diese API integrieren soll, bekommt so ein besseres Gefühl für die API.