什么是API?

2020.04.14 -

   

您可能已经看过“ API”一词。操作系统,Web浏览器和应用程序更新通常会为开发人员宣布新的API。但是什么是API?

应用程序接口

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

可以将API视为餐厅中的菜单。菜单提供了您可以订购的菜肴列表,以及每个菜肴的说明。当您指定所需的菜单项时,餐厅的厨房将开始工作,并为您提供一些成品。您不完全了解餐厅如何准备食物,也不需要。

同样,API列出了开发人员可以使用的一系列操作,以及对他们所做工作的描述。开发人员不一定需要知道例如操作系统如何构建。他们只需要知道它可以在他们的应用程序中使用即可。

API使开发人员可以利用平台的实现方式来完成工作,从而节省时间。这有助于减少开发人员需要创建的代码量,还可以为同一平台的应用程序之间创建更多的一致性。API可以控制对硬件和软件资源的访问。

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

假设您要为iPhone开发一个应用程序。与其他所有操作系统一样,Apple的iOS操作系统提供了大量的API,从而使您的工作更加轻松。

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

如果要从iPhone的摄像头捕获照片或视频,则不必编写自己的摄像头界面。您可以使用相机API将iPhone的内置相机嵌入到您的应用中。如果没有API来简化此操作,则应用程序开发人员将必须创建自己的摄像头软件并解释摄像头硬件的输入。

但是Apple的操作系统开发人员已经完成了所有这些艰苦的工作,因此开发人员可以只使用相机API嵌入相机,然后继续构建他们的应用程序。而且,当苹果改进相机API时,所有依赖它的应用程序都会自动利用这一改进。

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

API控制对资源的访问

API还用于控制对硬件设备和软件功能的访问,而这些硬件设备和软件功能可能未必具有使用许可。这就是API通常在安全性中扮演重要角色的原因。

例如,如果您曾经访问过一个网站,并且在浏览器中看到一条消息,要求该网站查看您的确切位置,则该网站正尝试在您的Web浏览器中使用geolocation API。

Web浏览器公开了这样的API,以使Web开发人员可以轻松访问您的位置,他们只需问“您在哪里?” 浏览器会进行艰苦的工作来访问GPS或附近的Wi-Fi网络以查找您的实际位置。

但是,浏览器也可以通过API公开此信息,因为可以控制对其的访问。当网站想要访问您的确切地理位置时,他们唯一的途径就是通过位置API。而且,当网站尝试使用它时,您(用户)可以选择允许还是拒绝该请求。

访问诸如GPS传感器之类的硬件资源的唯一方法是通过API,因此浏览器可以控制对硬件的访问并限制应用程序可以执行的操作。

在iOS和Android等现代移动操作系统上使用相同的原理,其中移动应用程序具有可以通过控制对API的访问权限来强制执行的权限。例如,如果开发人员尝试通过照相机API访问照相机,则可以拒绝权限请求,并且该应用无法访问您设备的照相机。

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

API用于服务之间的通信

API也用于各种其他原因。例如,如果您曾经看到网站上嵌入了Google Maps对象,则该网站正在使用Google Maps API嵌入该地图。

Google向Web开发人员公开了这样的API,然后Web开发人员可以使用这些API在其网站上放置复杂的对象。如果不存在这样的API,则开发人员可能必须创建自己的地图并提供自己的地图数据,才能在网站上放置一些交互式地图。

而且,由于它是一种API,因此Google可以控制对第三方网站上Google Maps的访问,确保他们以一致的方式使用它,而不必试图像乱地嵌入显示Google Maps网站的框架。

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

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

本站文章禁止转载,违者必究
阅 230
0

您可能已经看过“ API”一词。操作系统,Web浏览器和应用程序更新通常会为开发人员宣布新的API。但是什么是 […]

湘公网安备 43011102001693号

    湘ICP备19003021号-1