2017-01-03 1 views
0

Also lese ich über APIs, um mehr über sie zu lernen, und es scheint, dass die übliche Definition in etwa wie folgt ist: "Eine API ist die Schnittstelle, durch die Sie auf den Code von jemand anderem zugreifen welcher Code von jemand anderem auf Ihren zugreift "und erhält häufig Beispiele, die dies klären, wie z. B. Yelp, das Google oder Apple Maps API verwendet, um auf die Karte zugreifen zu können, ohne Informationen über die Implementierung der Methoden selbst zu benötigen.Schwierigkeiten, APIs und das DOM zu verstehen

Aber dann begann ich separat über das DOM (Document Object Model) zu lesen, und es ist auch als eine API definiert. Jedoch, basierend auf der vorherigen Definition und Beispielen von API (der Yelp), finde ich es schwer zu mögen..Sehen Sie es als eine API in der gleichen Weise. Ich verstehe, dass Webbrowser das DOM IMPLEMENTIEREN, aber jeder Webbrowser hat eine eigene Implementierung davon, im Gegensatz zu dem Google Maps API, von dem ich annehme, dass es eine eigene Implementierung von Google hat und dann von anderen Apps verwendet wird . So wie ... für einen bestimmten Webbrowser verhält sich der Webbrowser wie "Google" in Bezug auf die Bereitstellung der API, aber wer fungiert als ... Yelp? Ist es die Webseite? Der Programmierer? Die Sprache (Javascript)?

Ich hoffe, mein Beispiel war nicht zu verwirrend, ich möchte nur irgendwie zu verstehen, wer das DOM hat eine Beziehung "Google Map API-Yelp" mit.

+0

Die Definition von API unterscheidet nicht, ob es eine oder viele Implementierungen davon gibt. Bedenken Sie, dass Bing eine eigene Implementierung des Google Maps-API bereitstellen könnte, sodass eine Anwendung problemlos zwischen Google und Bing Maps für die Daten wechseln kann. – Barmar

+0

Hmm, dein Kommentar verwirrte mich ein bisschen. Ich gehe davon aus, dass etwas wie das Google Maps-API von Google selbst implementiert werden müsste, im Gegensatz zum DOM, das nur eine "Spezifikation" der Dinge zu sein scheint, die der Browser implementieren muss. Mit der Google Maps-API verwenden Sie tatsächlich eine Art von Google-Dienst, sodass dieser bereits von Google implementiert sein muss. Wenn wir uns das Google Maps-API nur als eine abstrakte Schnittstelle wie das DOM vorstellen, und wenn Bing diese Schnittstelle implementiert hat, wie würden sie Zugriff auf alle Server haben, die Google nutzt, um seine Karteninformationen zu erhalten? – FrostyStraw

Antwort

1

Eine API ist eine Spezifikation von Funktionen und Datenstrukturen, die von einer Anwendung zur Interaktion mit anderen Service- und/oder Datenstrukturen verwendet werden.

Ein Beispiel ist das POSIX-Betriebssystem API (Funktionen wie open() und read() für den Zugriff auf Dateien, fork() und exec() für Prozesse und Verwaltung von Programmen, etc.). POSIX gibt die API an, die es Programmierern ermöglicht, portable Programme zu schreiben, die unter Verwendung dieser Funktionen auf zahlreichen verschiedenen Betriebssystemen laufen.

Ein anderes Beispiel ist die DOM-API in Webbrowsern. Das DOM ist eine abstrakte Datenstruktur und die DOM-API sind Methoden wie getElementById() und appendChild(), die auf die Datenstruktur wirken, die der Browser dann anzeigt. Jeder Browser verfügt über eine eigene Implementierung dieser API, mit der Javascript-Anwendungen über verschiedene Browser hinweg ausgeführt werden können.

APIs sind nicht spezifisch für eine Implementierung. In Fällen, in denen Dienstanbieter eine Bibliothek zur Nutzung ihrer Dienste haben, werden die API und ihre Implementierung jedoch oft zusammengeführt. Um beispielsweise den Stripe-Dienst zur Verarbeitung von Kreditkartenzahlungen zu verwenden, verwenden Sie die von ihnen geschriebene Stripe-API. Theoretisch könnten alle Zahlungsprozessoren wie Stripe, PayPal, SWReg usw. zusammenkommen und eine gemeinsame API definieren, die sie alle implementieren würden, aber sie haben dies nicht getan AFAIK.

+0

Ich verstehe. Für das DOM-Beispiel ist das DOM also eine "Datenstruktur", die alle Knoten des Dokuments repräsentiert, und die DOM-API ist eine "Spezifikation von Funktionen" .. die vom Programmierer verwendet wird, um mit dieser Datenstruktur zu interagieren? Jeder Browser implementiert jedoch die tatsächlichen Funktionen, die in der DOM-API angegeben sind, sodass die tatsächlichen Implementierungsdetails für jede Funktion zwischen den Browsern unterschiedlich sein würden, die Ergebnisse der Funktion jedoch identisch wären. Der Browser stellt die Implementierungen der Funktionen bereit, die der Programmierer verwenden kann (so verhält es sich wie Google, das seine Maps-API bereitstellt), und der Programmierer ist wie Yelp – FrostyStraw

+0

, weil sie die API verwenden, um mit dem Browser zu interagieren. Ist das richtig? – FrostyStraw

+1

Das stimmt. In diesem Fall ist das DOM auch eine abstrakte Datenstruktur; das M steht für "Modell". – Barmar

1

Ich würde sagen, dass derjenige, der eine JavaScript- oder HTML-Datei erstellt, "Yelp" ist und der "Google" -Teil der Browser wäre. Der Unterschied hier ist W3C, das die DOM API standardisiert. Wenn es nicht für W3C wäre, könnte jeder Browser-Anbieter seinen eigenen Satz von DOM offenlegen - ein Szenario, das in der Vergangenheit tatsächlich in gewissem Umfang existierte. Dank W3C können wir jetzt mit einer API arbeiten, die bei verschiedenen Browsern ziemlich konsistent ist.

Es ist, als ob Google und Bing beschlossen, ihre Karten-API zu standardisieren. Das Endergebnis wäre, dass Yelp einen Client erstellen könnte, der sowohl mit Google als auch mit Bing Maps funktionieren würde. Es ist immer noch eine API, obwohl sie von verschiedenen Quellen implementiert wird.

Ich hoffe, dass hilft.

Verwandte Themen