Was genau meinen Sie mit API?
Auf vielen Plattformen könnten Sie eine Verknüpfung zu einer DLL oder einer ähnlichen Konstruktion herstellen, müssten aber für ein bestimmtes natives Ziel (Intel / ARM) oder Endianness noch neu kompiliert werden? Eine bestimmte Binärschnittstelle kann aufgrund von Problemen mit Datentypen oder Konstrukten (Zeiger, die versucht werden, auf Sprachen zurückzukehren, die sie nicht gut unterstützen) weiterhin Probleme mit bestimmten Sprachen haben einige Sprachen auszuschließen oder ihren Gebrauch von diesen Sprachen umständlich zu machen.
So etwas wie C und eine Schnittstelle, die auf binären Endpunkten in einer DLL basiert, können auf den meisten Plattformen und in den meisten Sprachen problemlos aufgerufen werden, müssen jedoch möglicherweise anders kompiliert und / oder in verschiedenen Varianten angeboten oder mit verschiedenen statischen Bibliotheken verknüpft werden.
Es scheint mir, dass die Wahl der Sprache, in der Sie Ihre Bibliothek oder Ihren Service schreiben, oder was auch immer per Definition nicht für die Frage von Bedeutung ist, bis Sie mehr über die Plattform / den Service erfahren, den die API bereitstellt. Wenn Sie davon ausgehen können, dass ein Netzwerkstapel verfügbar ist und keine Leistung auf Funktionsebene mit direkter Verknüpfung erforderlich ist, kann die API leicht HTTP-basiert sein, wobei die Clientsprache eine Art Shim verwendet, um die Anforderungen transparent zu machen.
Ich denke, im Allgemeinen ist diese Frage zu weit gefasst, um in der realen Welt nützlich zu sein, da Sie nicht angegeben haben, welche Art von API angesichts der Art des angebotenen Dienstes geeignet sein könnte.