Der Begriff API ist eine Abkürzung für „application programming interface“, also eine Schnittstelle mit der eine Software gesteuert oder Daten übertragen werden können. In den letzten Jahren nahm die Nutzung und Erstellung von APIs in meinem Arbeitsumfeld immer mehr zu. Ging es anfänglich nur um die Nutzung wie z.B. der Geolocation API von Google, so wurden für meine Kunden in letzter Zeit immer häufiger eigene kleinere und größere API Umsetzungen notwendig. Bei dieser individuellen Erstellung kann man in zwei Kategorien unterteilen:
Der erste Anwendungsfall ist die Verbindung zwischen zwei verschiedenen Servern/Softwaresystem die untereinander Daten austauschen müssen. Übliche Anwendungsfälle sind das Synchronisieren von Daten und das Übermitteln von aggregierten Benutzereingaben. Die Daten werden hierbei, nach der anfänglichen Authentifizierungsphase von Server zu Server ausgetauscht.
Der zweite Anwendungsfall bei dem eine API notwendig ist, ist eine Verbindung zwischen dem im Browser laufenden Frontend einer Website und dem auf dem Server befindlichem Backend. In der Regel sind diese APIs schneller und einfacher erstellt, da Frontend und Backend beim selben Entwickler liegen.
Für mich haben sich bei der Erstellung neuer APIs einige Checklistenpunkte heraus kristallisiert, die ich ablaufen kann, um zur notwendigen Qualität zu gelangen:
- Konzeption der Gesamt-API-Struktur inklusive Betrachtung von Daten-Abhängigkeiten / einfügen ins Gesamtsystem
- Struktur und Format einzelner API-Endpoints
- Sicherheitskonzept / Authentifizierung
- Validierung der übergebenen Daten / Error-Management
- Test-System für die Endpoints
- Dokumentation
- Versionierung
Nicht jede API benötigt in allen Punkte die selbe Qualität. Server-to-Server basierte APIs werden z.B. mehr Aufwand bei Dokumentation, Versionierung und dem Strukturieren der Endpoints benötigen, während bei Validierung und Error-Management oft vereinfacht werden kann, da die Daten bereits an anderer Stelle validiert wurden. Umgedreht ist bei einer Frontend-Backend-API das Sicherheitskonzept mit Authentifizierung und die Validation der übergebenen Daten essentiell um die Sicherheit des Gesamtsystems nicht zu gefährden. Dokumentation und Versionierung können dann hinten angestellt werden, da Frontend und Backend oft an selber Stelle weiterentwickelt werden.
Technologisch bewege ich mich bei der Umsetzung vorrangig in der PHP und Javascript Welt. Der Aufbau erfolgt oft in rapid-prototyping-ystemen wie etwa Laravel/Lumen, der WordPress-Rest-API für kleine Umsetzungen auch mal in native PHP / CURL, selten mit Express. Clientseitig ist vuejs meine „Haus und Hof“-Framework.
Besteht bei Ihnen Bedarf an der Unterstützung bei Planung, Realisierung oder Review einer API? Oder benötigen Sie vielleicht Beratung oder Schulung für Ihr nächstes Projekt? Lassen Sie es mich wissen.