什么是 API,开发人员如何使用它们?

ba210ee0c7b8b2b

您可能已经看到“API”这个词的出现。操作系统、Web 浏览器和应用程序更新通常会为开发人员发布新的 API。但是什么是 API 以及开发人员如何使用它们?

什么是应用程序编程接口

API 一词是首字母缩写词,它代表“应用程序编程接口”。

把 API 想象成餐厅的菜单。菜单提供您可以订购的菜肴列表,以及每道菜的描述。当您指定所需的菜单项时,餐厅的厨房会完成工作并为您提供一些成品。你不知道餐厅是如何准备食物的,你也没有必要知道。

类似地,API 列出了开发人员可以使用的一系列操作,以及对它们所做操作的描述。例如,开发人员不一定需要知道操作系统如何构建和显示“另存为”对话框。他们只需要知道它可以在他们的应用程序中使用

这不是一个完美的比喻,因为开发人员可能必须向 API 提供他们自己的数据才能获得结果,所以也许它更像是一家高档餐厅,您可以在其中提供厨房将使用的一些自己的食材。

但它大致上是准确的。API 允许开发人员通过利用平台的实现来完成基本工作来节省时间。这有助于减少开发人员需要创建的代码量,还有助于为同一平台的应用程序创建更高的一致性。API 可以控制对硬件和软件资源的访问。

API 使开发人员的生活更轻松

假设您想为 iPhone 开发一个应用程序。苹果的iOS操作系统提供了大量的API -as所有其他操作系统并-使它更容易些你。

例如,如果您想嵌入一个 Web 浏览器来显示一个或多个网页,则不必为您的应用程序从头开始编写自己的 Web 浏览器。您可以使用WKWebView API 在应用程序中嵌入 WebKit (Safari) 浏览器对象。

如果您想从 iPhone 的相机捕捉照片或视频,您不必编写自己的相机界面。您可以使用相机 API 将 iPhone 的内置相机嵌入您的应用程序中。如果没有 API 来简化这一过程,应用程序开发人员将不得不创建自己的相机软件并解释相机硬件的输入。但是 Apple 的操作系统开发人员已经完成了所有这些艰苦的工作,因此开发人员可以只使用相机 API 嵌入相机,然后继续构建他们的应用程序。而且,当 Apple 改进相机 API 时,所有依赖它的应用程序都会自动利用该改进。

这适用于每个平台。例如,您想在 Windows 上创建一个对话框吗?有一个 API。想在安卓上支持指纹认证吗?也有一个 API,因此您不必测试每个不同的 Android 制造商的指纹传感器。开发人员不必一遍又一遍地重新发明轮子。

API 控制对资源的访问

API 还用于控制对应用程序不一定有权使用的硬件设备和软件功能的访问。这就是 API 通常在安全性方面发挥重要作用的原因。

例如,如果您曾经访问过某个网站并在浏览器中看到该网站要求查看您的精确位置的消息,则该网站正在尝试在您的 Web 浏览器中使用地理定位 API。Web 浏览器公开了这样的 API,使 Web 开发人员可以轻松访问您的位置——他们只需询问“您在哪里?” 浏览器会执行访问 GPS 或附近 Wi-Fi 网络以查找您的物理位置的繁重工作。

38483a987ad2684

但是,浏览器也通过 API 公开此信息,因为可以控制对它的访问。当网站想要访问您的确切物理位置时,他们获得它的唯一方法是通过位置 API。而且,当网站尝试使用它时,您(用户)可以选择允许或拒绝此请求。访问 GPS 传感器等硬件资源的唯一方法是通过 API,因此浏览器可以控制对硬件的访问并限制应用程序可以执行的操作。

同样的原则也用于 iOS 和 Android 等现代移动操作系统,其中移动应用程序具有可以通过控制对 API 的访问来强制执行的权限。例如,如果开发者试图通过相机 API 访问相机,您可以拒绝权限请求,应用程序无法访问您设备的相机。

使用权限的文件系统——就像它们在 Windows、Mac 和 Linux 上一样——具有由文件系统 API 强制执行的权限。典型的应用程序无法直接访问原始物理硬盘。相反,应用程序必须通过 API 访问文件。

API 用于服务之间的通信

API 也用于各种其他原因。例如,如果您曾看到某个网站上嵌入了 Google Maps 对象,则该网站正在使用 Google Maps API 来嵌入该地图。Google 向 Web 开发人员公开了这样的 API,然后他们可以使用这些 API 在他们的网站上插入复杂的对象。如果这样的 API 不存在,开发人员可能不得不创建自己的地图并提供自己的地图数据,以便在网站上放置一个小的交互式地图。

而且,因为它是一个 API,所以谷歌可以控制对第三方网站上谷歌地图的访问,确保他们以一致的方式使用它,而不是试图杂乱无章地嵌入一个显示谷歌地图网站的框架,例如。

这适用于许多不同的在线服务。有一些 API 可用于从 Google Translate 请求文本翻译,或在网站上嵌入 Facebook 评论或 Twitter 上的推文。

OAuth的标准还定义了一些API,允许您登录到与网站的其他服务,例如,使用您的Facebook,谷歌,或Twitter帐户登录到一个新的网站,而不只是该网站创建一个新的用户帐户. API 是标准合同,用于定义开发人员如何与服务通信,以及开发人员应该期望收到的输出类型。


如果您已经了解了这些,您就会更好地了解 API 是什么。最终,除非您是开发人员,否则您真的不需要知道 API 是什么。但是,如果您看到某个软件平台或服务为各种硬件或服务添加了新的 API,那么开发人员应该更容易利用这些功能。

未经允许不得转载:表盘吧 » 什么是 API,开发人员如何使用它们?