Mit AJAX können wir HTTP-Requests an einen Web-Server senden, um nach bestimmten Daten zu fragen, Daten zu senden, etc. Der Server gibt uns dann in Form einer Response diese Daten zurück.
Diese Request geschehen alle asynchron im Hintergrund, da es einen Moment braucht bis wir die Daten vom Server haben.
API
API steht für Application Programming Interface und ist ein Stück Software, welches von anderer Software benutzt werden kann, damit Applikationen miteinander kommunizieren können.
Es gibt viele verschiedene Arten von APIs:
DOM API
Geolocation API
...
Es gibt aber auch Web APIs. Diese laufen auf einem Server, welcher Requests bekommt und Responses zurücksendet.
Diese APIs können wir in unserem Frontend nutzen, um Interaktion und Austausch mit einem Backend erzielen. Wir können unsere eigene API programmieren oder eine der tausenden 3rd Party APIs nutzen.
...
XMLHttpRequest
Mit AJAX können wir einen XMLHttpRequest erstellen, und dann mit einem Event-Listener auf die Daten warten.
HTTP-Requests sollten nicht mehr mit XMLHttpRequest gemacht werden, da es veraltet ist.
Wenn wir nun abhängig vom ersten Resultat bspw. das Nachbarsland anzeigen wollen, müssen wir das Nachbarsland innerhalb des Callbacks des ersten Requests. Wenn wir das nun einige Male machen müssen sind wir in der Callback Hell.