In layman's terms, what is an API?
Stelle dir vor, du hättest eine schwarze Box mit einem großen roten Knopf oben drauf. Wenn du den Knopf drückst, leuchtet die schwarze Box auf.
In diesem Beispiel bedeutet das Drücken des roten Knopfes, dass der schwarze Kasten aufleuchtet. Zwischen dir und dem Kasten gibt es eine Vereinbarung, die besagt: "Wenn ich den Knopf drücke, leuchtet der Kasten auf".
Stelle dir eine Schnittstelle als die Verständigung zwischen dir und dem Kasten vor. Lass uns nun die Metapher erweitern:
Anstelle deines Fingers hast du einen Computer mit - du hast es erraten - einem mechanischen Finger. Du kannst dem Computer sagen, er soll den Knopf drücken, und die Kiste wird aufleuchten. Siehst du, dass das funktionell immer noch dasselbe ist? Du hast einem Computer gesagt, er solle statt deines Fingers deinen Befehlen folgen.
Lass uns noch weiter gehen: Anstatt einen mechanischen Knopf zu drücken, tun wir so, als müsstest du "Aufleuchten!" zu dem Kasten sagen, um ihn zu beleuchten. Wenn du deinen Computer so programmieren könntest, dass er dies sagt, wird der schwarze Kasten aufleuchten. Funktionell ist es immer noch dasselbe.
Nun stelle dir vor, anstatt dies mündlich zu sagen, schreibst du es als schriftlichen Befehl für den Kasten aus. Und - dieser Teil ist der kritischste - die Blackbox sagt dir den genauen Wortlaut: aufleuchteMich(). Die Box enthält auch eine Anleitung, wie du diesen Befehl an die Box senden kannst.
API steht für Anwendungsprogrammierschnittstelle( von english application programming interface). In diesem Beispiel ist die Anwendung die Box selbst. Die Schnittstelle ist das Verständnis zwischen dir und der Box. Mit anderen Worten, sie ist eine Schnittstelle zur Programmierung der Anwendung (der Box). Die API lässt dich daher wissen, wie du die Befehle schreiben kannst, mit denen die Box ihre Arbeit verrichten soll.