什么是API?
您可能已经看到了“ API”一词。操作系统,Web浏览器和应用程序更新通常会为开发人员宣布新的API。但是什么是API?
应用程序接口
术语API是首字母缩写词,代表“应用程序编程接口”。
可以将API视为餐厅中的菜单。菜单提供了您可以订购的菜肴列表,以及每道菜肴的描述。当您指定所需的菜单项时,餐厅的厨房将开始工作,并为您提供一些成品。您不知道餐厅是如何准备食物的,您也不需要。
同样,API列出了开发人员可以使用的一系列操作,以及对他们所做工作的描述。开发人员不一定需要知道例如操作系统是如何构建并显示“另存为”对话框的。他们只需要知道可以在他们的应用程序中使用它即可。
这并不是一个完美的比喻,因为开发人员可能必须向API提供自己的数据才能获得结果,所以它可能更像是一家高档餐厅,您可以在其中提供一些厨房可以使用的食材。
但这大致上是正确的。 API使开发人员可以利用平台的实现方式来完成工作,从而节省时间。这有助于减少开发人员需要创建的代码量,还可以为同一平台的应用程序之间创建更多的一致性。 API可以控制对硬件和软件资源的访问。
API使开发人员的生活更轻松
假设您要为iPhone开发一个应用。 Apple的iOS操作系统(与其他所有操作系统一样)提供了大量的API,从而使您的工作更加轻松。
例如,如果您要嵌入网络浏览器以显示一个或多个网页,则不必为应用程序从头开始编写自己的网络浏览器。您使用WKWebView API在您的应用程序中嵌入WebKit(Safari)浏览器对象。
如果您想从iPhone的相机中捕获照片或视频,则无需编写自己的相机界面。您使用相机API将iPhone的内置相机嵌入到您的应用中。如果没有API来简化此操作,则应用程序开发人员将必须创建自己的摄像头软件并解释摄像头硬件的输入。但是Apple的操作系统开发人员已经完成了所有这些艰苦的工作,因此开发人员可以只使用相机API嵌入相机,然后继续构建自己的应用。而且,当苹果改进相机API时,所有依赖它的应用程序都会自动利用这一改进。
这适用于每个平台。例如,您要在Windows上创建一个对话框吗?有一个API。是否要在Android上支持指纹认证?也有一个API,因此您不必测试每个不同的Android制造商的指纹传感器。开发人员不必一遍又一遍地重新发明轮子。
API控制对资源的访问
API还用于控制对应用程序未必具有使用权限的硬件设备和软件功能的访问。这就是为什么API通常在安全性中扮演重要角色的原因。
有关的:如何阻止网站询问您的位置
例如,如果您曾经访问过某个网站,并且在浏览器中看到一条消息,要求该网站查看您的确切位置,则该网站正尝试在您的网络浏览器中使用地理位置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?这些Facebook,Twitter和Google登录按钮的工作方式
OAuth标准还定义了许多API,这些API可让您使用其他服务登录网站-例如,使用Facebook,Google或Twitter帐户登录新网站,而无需仅为该网站创建新的用户帐户。 API是标准合同,用于定义开发人员与服务进行通信的方式以及开发人员应期望获得的输出类型。
如果您已完成此步骤,则可以更好地了解API是什么。最终,除非您是开发人员,否则您实际上不需要知道什么是API。但是,如果您看到软件平台或服务已为各种硬件或服务添加了新的API,则开发人员应该更容易利用这些功能。
图片来源:patpitchaya / Shutterstock.com。