Eine Programmierschnittstelle (auch Anwendungsschnittstelle, genauer Schnittstelle zur Programmierung von Anwendungen), häufig nur kurz API genannt (von englisch application programming interface, wörtlich, Anwendungsprogrammierschnittstelle), ist ein Programmteil, der von einem Softwaresystem anderen Programmen zur Anbindung an das System zur Verfügung gestellt wird. Im Gegensatz zu einer Binärschnittstelle (ABI) definiert eine Programmierschnittstelle zur die Programmanbindung auf Quelltext-Ebene. Zur Bereitstellung solch einer Schnittstelle gehört meist die detaillierte Dokumentation der Schnittstellen-Funktionen mit ihren Parametern auf Papier oder als elektronisches Dokument.
Wikipedia (Programmierschnittstelle – Wikipedia)
So , also wir sehen API gibt es schon sehr lange , aber warum sind sie in den letzten Jahren noch sehr viel mehr ein Thema geworden?
Nun , das hat natürlich etwas mit Vernetzung von unterschiedlichen Systemen zu tun , das ist uns natürlich klar , und um hier Probleme zu vermeiden muss eine Entkopplung passieren. Das hat auch mit dem Siegeszug des Internet zu tun.
Das hat auch dazu geführt das Unternehmen auch viel vernetzter agieren, innerhalb und auch zwischen zwei Unternehmen, hier kann ich nur das Buch Connected Company empfehlen.
Wo ich das große Missverständnis sehe, ist das heute in vielen Besprechungen wenn von API's gesprochen wird nur von einer , maximal zwei Technologien gesprochen wird. Und hier geht es nicht nur um Technologien sondern auch von Paradigmen. Ich sehe das z.B. REST als API Technologien als der heilige Gral angesehen wird, und alles andere oft nicht mehr gesehen wird. Und bitte mich nicht falsch verstehen, natürlich ist REST ein gutes Paradigma und in vielen Anforderungen sinnvoll aber nicht in allen. Ich möchte das jetzt ein wenig Spezifizieren, bei Anforderungen wo zwei Applikationen sehe ich jetzt nicht das eine REST API das Tool das Wahl ist , wenn es darum geht das eine Microservice Architektur aufzubauen sehe ich auch nicht unbedingt das REST die Technologie der Wahl ist , hier geht es nicht darum eine API zur Verfügung zu stellen die für den Konsum von verschiedenen geeignet sind, wo ich als Anbieter die Funktionalität verschiedenen Institutionen zur Verfügung zu stellen in einem genormten Format.
Ich plädiere dafür die verschiedenen Technologien wie Werkzeuge in einem Werkzeugkoffer zu sehen. Indem ich dementsprechend entscheide welches Werkzeug oder Werkzeuge ich benutze um meine Lösung bestmöglich aufbaue.
Es wird in der Zukunft Blueprint's innerhalb eines Unternehmens erfordern, die Kollegen Informationen an der Hand gibt wie das Unternehmen Integration von Systemen sieht , die laufend Review's unterzogen wird um hier auch immer gewährleistet das diese Blueprint's an den neuen Technologien dranbleiben.
Fazit:
Integration wird weiterhin ein Thema bleiben, ich sehe es nicht das diese Entscheidungsprozesse durch Software-Agenten abgenommen werden können , da sind die Variationen zu groß, und hier liegt die stärke des erfahrenen Mitarbeiter im Unternehmen der auch die Domaine des Unternehmens versteht und auch die Kultur kennt.
Das ist Teamarbeit, das Thema ist zu vielfältig das einer dieses Thema , vollständig erfassen kann.