【发布时间】:2017-05-17 22:13:09
【问题描述】:
所以我正在阅读有关 API 以了解更多关于它们的信息,并且似乎通常的定义类似于“API 是您访问其他人的代码或其他人的代码访问您的代码的接口”,并且经常得到一些例子来澄清这一点,例如 Yelp 使用 Google 或 Apple Maps API 来访问地图,而无需了解有关方法本身的实现的任何信息。
但后来我开始单独阅读 DOM(文档对象模型),它也被定义为 API。然而,基于之前对 API 的定义和示例(Yelp 的),我觉得很难喜欢......以同样的方式将其视为 API。我知道网络浏览器实现了 DOM,但每个网络浏览器都有自己的实现,而不是当你谈论谷歌地图 API 时,我假设谷歌有自己的单一实现,然后被其他应用程序使用.所以就像...对于特定的网络浏览器,网络浏览器在提供 API 方面就像“谷歌”,但谁充当... Yelp?是..网页吗?程序员?语言(Javascript)?
我希望我的示例不会太混乱,我只是想了解 DOM 与谁有“Google Map API-Yelp”类型的关系。
【问题讨论】:
-
API 的定义并没有区分它的实现是一个还是多个。考虑 Bing 可以提供自己的 Google Maps API 实现,以便应用程序可以轻松地在 Google 和 Bing 地图之间切换数据。
-
嗯,你的评论让我有点困惑。我认为 Google Maps API 之类的东西必须由 Google 自己实现,这与 DOM 不同,DOM 似乎只是浏览器必须实现的东西的“规范”。使用 Google Maps API,您实际上是在使用某种 Google 服务,因此它一定已经由 Google 实现。如果我们将 Google Maps API 视为像 DOM 一样的抽象接口,并且如果 Bing 实现了这个接口,他们将如何访问 Google 用来获取其地图信息的任何服务器?
标签: javascript api dom browser interface