2019-07-25 6 Minuten

APIs make the world go round

Schnittstellen sind weit sexier, als man auf den ersten Blick sieht.

Zwischenmenschliche Kommunikation ist so ein Ding. Ich hab das Thema studiert, und dennoch ist es absurd, wie viele Probleme durch fehlende oder falsche Kommunikation verursacht werden.

Aber auch: wie viele Probleme durch gute Kommunikation gelöst werden können.

In der IT gibt es diese Unschärfen maximal dann, wenn Menschen untereinander reden. Beim Programmieren selbst?

0 und 1. Funktioniert oder funktioniert nicht.

Ich kann mir nicht einmal vorstellen was passieren würde, wenn unsere Computer untereinander so kommunizieren würden wie wir Menschen.

“Leg DU doch den Kunden im CRM an!”

“Warum muss ich eigentlich immer diese Berechnung ausführen?”

“Boah, schau dir den da drüben an. Der ist ein Windows.

“Mit dem red ich nicht, der hat einen Virus”

Sofortiges Blackout und der Ausfall des Internets, direkt gefolgt von unserer gesellschaftlichen Zeitreise zurück ins Mittelalter.

Ich kann gut verstehen, warum man sich lieber auf die IT stürzt, als auf die messy zwischenmenschliche Welt. Aber darum soll es heute nicht gehen.

Heute geht es darum, wie verschiedene Systeme – oder genauer Programme bzw. Produkte – untereinander kommunizieren.

Und das hat weit mehr Auswirkung auf deinen Alltag, als du glauben würdest.

Schnittstellen

Schnittstellen sind überall um uns herum. Sei es zwischen Abteilungen in Unternehmen, auf der Seite deines Laptops oder zwischen Menschen und Smartphones. Deshalb muss ich diesen Begriff ein wenig einschränken.

Eine Schnittstelle von einem Programm wird API genannt – das Application Programming Interface.

Damit es ein wenig konkreter wird, bauen wir mal unser eigenes Produkt:

Wir starten Scooteroo, eine E-Scooter-App (weil das grad cool ist). Damit das Unternehmen funktioniert, brauchen wir ein paar Dinge

1. E-Scooter

2. Eine App

3. Es gibt keinen Schritt 3

Unsere App hat natürlich eine Liste aller Scooter und User in ihrer Datenbank – inklusive aktueller Location, Mietstatus und einer Liste der letzten Hipster, die mit dem jeweiligen Scooter gefahren sind.

Das funktioniert super – bis der Hype vorbei ist. Oder der Winter kommt. Was auch immer als erstes passiert.

Außerdem ist der Markt hart umkämpft. Deshalb haben wir beschlossen, uns mit unserem Konkurrenten Scooteridoo zusammen zu tun. Das ist aber ein riesiges Projekt:

  • Scooteridoo hat eine eigene App, die auf einer anderen Technologie beruht
  • Scooteridoo hat eigene Kundendaten

Irgendwie müssen wir das integrieren. Wir beschließen, dass in einem ersten Schritt alle Scooter von Scooteridoo auch bei uns in der App angezeigt werden.

Und da beginnen die Probleme.

Application Programmable Interface

Da unsere Apps in unterschiedlichen Technologien geschrieben sind (also aus unterschiedlichen Kulturen kommen), verstehen sie sich nicht so gut. Sie sprechen keine gemeinsame Sprache.

Noch.

Es gibt mehrere Arten, wie wir diese API basteln können – am Häufigsten ist im Moment aber ein sogenannter RESTful Service. Also machen wir das.

Wir einigen uns im ersten Schritt auf eine Sprache, die ab sofort verwendet wird, wenn unserer Apps kommunizieren wollen.

Im ersten Schritt unserer Unternehmenszusammenführung braucht unsere App ein paar Infos von Scooteridoo:

  • Eine Liste aller Scooter von Scooteridoo
  • Ob ein Scooter frei ist
  • Die Location eines Scooters

Jeder dieser Punkte (sog. endpoints) muss also von Scooteridoo in einer für uns verständlichen Sprache zur Verfügung gestellt werden.

Das sieht dann so aus:

GET /scooters liefert uns eine Liste aller Scooter

GET /scooter/<id> liefert uns alle Informationen zu einem Scooter – also Name, Location, Mietstatus

Mit diesen Informationen können wir eigentlich schon alle Scooter von Scooteridoo bei uns in der App anzeigen.

Und das ist die gesamte Zauberei?

Im Prinzip? Ja.

Aber um die Auswirkungen dieses einfachen Prinzips zu sehen, müssen wir uns überlegen, welche Vorteile eine API mit sich bringt.

  1. Scooteridoo hat die Kontrolle: In der Liste oben kommen die Kundendaten von Scooteridoo gar nicht vor. Sie sind nicht über die API verfügbar – und das is gut so. Kundendaten sollten nicht so einfach aufrufbar sein.
  2. Scooteridoo könnte ab sofort jedem anderen Scooter-Unternehmen die API zur Verfügung stellen. Da schon eine standardisierte Schnittstelle besteht, müsste das Unternehmen Scooterino Ltd. nur die API von Scooteridoo einbinden.
  3. Es hört natürlich nicht auf, nur Informationen abzufragen. Mit POST oder UPDATEkönnte man sogar erlauben, dass andere Programme die eigenen Daten anpassen (natürlich mit entsprechender Authorisierung).
Symboldbild: Schnittstellenprogrammierung

Das klingt alles jetzt ein wenig abstrakt – daher hier gleich ein paar Beispiele aus der Praxis, die ich in den letzten Wochen diskutieren durfte:

Beispiele für Schnittstellenprogrammierung

Nächtliche Synchronisation ins E-Mail Tool

Ein Unternehmen hat eine große Datenbank an potenziellen und bestehenden Kunden. Diese Kunden haben alle unterschiedliche Interessen, und wir wollen den Kunden dementsprechend Newsletter schicken.

Zum Glück bietet MailChimp (das verwendete Newsletter Tool) eine API an. Unser Programm sieht sich jede Nacht die Daten aus der Datenbank an, und aktualisiert alle Informationen im Mailchimp.

Ein Prozess, der früher unnötig Zeit durch manuelle Exports / Imports benötigt hätte, läuft nun automatisch ab. Weil MailChimp eine API hat, und wir hier Subscriber automatisch anlegen können.

Synchronisation ins Sales-Tool

Ein (anderes) Unternehmen verwendet Hubspot als CRM- und Salestool. Das funktioniert super. Bis zu einer gewissen Grenze: Hubspot bestimmt, was User dürfen, und was nicht.

So hat das Unternehmen im Moment keine Chance zu wissen, über welchen Kunden wie viel reales Geld (nicht nur der theoretische Verkaufswert) hereingekommen ist. Ein Business Intelligence Blindflug.

Zum Glück bieten sowohl der Zahlungsdienstleister, als auch Hubspot eine API an. Wir müssen hier also nur:

  • Vom Zahlungsdienstleister Kunden-ID und Zahlungen abfragen
  • Und mit Hubspot zusammenführen.

Dies lässt sich – dank APIs – relativ simpel durchführen.

Car-Sharing

Vor Kurzem haben sich die beiden Car-Sharing Anbieter DriveNow und Car2Go zusammengeschlossen.

Und die haben genau das gemacht, was wir bereits mit unserer Scooter-App gemacht haben: Die Autos des anderen Anbieters sind auch in der App zu sehen.

Ohne APIs wäre das ein Millionen Projekt. Mit APIs ist das wahrscheinlich auch ein Millionenprojekt, aber ein einfacheres, vielleicht nicht dreistelliges Millionen Projekt.

Ist das alles wieder so ein elitäres Programmierer-Ding?

Nicht unbedingt. Es gibt inzwischen Tools wie Zapier, mit denen man sich Schnittstellenprozesse zusammenklicken kann. Ich kann jedem nur empfehlen, sich das Ding mal anzusehen.

Alleine anhand der eindrucksvollen Liste der Tools, die damit verknüpft werden können, fallen dir bestimmt einige Automatisierungspotenziale auf.

Mit Zapier kommt man oft schon sehr weit. Mit diesem Tool habe ich zum Beispiel bereits einen Verein halbautomatisiert. Ohne Programmierung.

Wie finde ich heraus, ob unsere Tools APIs anbieten?

Hier reicht tatsächlich eine einfache Google-Suche nach “xyz API”. Wenn du das technische Drumherum ausblendest, findest du sogar heraus, was denn alles möglich ist.

Hier zum Beispiel die API meines Newsletter-Tools ActiveCampaign. Da kann programmatisch ein Kontakt hinzugefügt werden:

Fazit

Für mich ist eine gute API inzwischen zu einem K.O.-Kriterium bei der Auswahl meiner Tools geworden.

Aus einer Unternehmerischen Sicht kann man so gewährleisten, dass man – zumindest bis zu einem gewissen Grad – die Flexibilität erhalten kann. Auch wenn sich die Anforderungen ändern. Statt jedes mal das gesamte Toolset ändern zu müssen, reichen oft ein paar Stunden Programmierung – oder ein paar Klicks in Zapier.

Von Hackern, Wordpress, SEO & Co

  • Wo kommt mein Spam her?
  • Wie leicht ist es, eine Wordpress Seite zu hacken?
  • Wie Umzugsfirmen ihre Gaunereien mit SEO umsetzen

...wöchentlich in deiner Inbox! 🚀

Schreibe einen Kommentar

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