应用程序接口
应用程序接口(英语:application programming interface[1]),缩写为API[2],是一种计算接口,它定义多个软件中介之间的交互,以及可以进行的调用(call)或请求(request)的种类,如何进行调用或发出请求,应使用的数据格式,应遵循的惯例等。它还可以提供扩展机制,以便用户可以通过各种方式对现有功能进行不同程度的扩展[3]。一个API可以是完全定制的,针对某个组件的,也可以是基于行业标准设计的以确保互操作性。通过信息隐藏,API实现了模块化编程,从而允许用户实现独立地使用接口。
概要
应用程序接口是指电脑操作系统或程序函数库提供给应用程序调用使用的代码,其主要目的是让应用程序开发人员得以调用一组例程功能,而无须考虑其底层的源代码为何、或理解其内部工作机制的细节。API本身是抽象的,它仅定义了一个接口,而不涉及应用程序在实际实现过程中的具体操作。
例如,图形库中的一组API定义了绘制指针的方式,可于图形输出设备上显示指针。当应用程序需要指针功能时,可在引用、编译时链接到这组API,而执行时就会调用此API的实现(库)来显示指针。
应用程序接口可以是一组数量上千、极其复杂的函数和副程序,可让程序员做很多工作,譬如“读取文件”、“显示菜单”、“在视窗中显示网页”等等。操作系统的API可用来分配存储器或读取文件。许多系统应用程序借由API接口来实现,像是图形系统、数据库、网络Web服务,甚至是在线游戏。
与用户界面(将计算机连接到人)形成对比的是,应用程序编程接口(API)将计算机或软件模块彼此连接。它并不是为直接由人(终端用户)使用而设计的,除非是计算机程序员在将其集成到软件中。API通常由作为程序员可用的工具或服务的不同部分组成。使用API这些部分中的一个的程序或程序员被认为是“调用”API的那部分。构成API的调用也被称为子程序、方法、请求或端点。API规范定义了这些调用,意味着它解释了如何使用或实现它们。
API的一个目的是隐藏系统工作的内部细节,仅暴露出程序员会觉得有用的那些部分,并即使内部细节稍后发生变化也保持它们的一致性。API可以为一个特定的系统对定制构建,或者它可能是一个允许多个系统之间互操作的共享标准。
APIs适用于编程语言、软件库、计算机操作系统和计算机硬件。API起源于1940年代,尽管这个术语直到1960年代和1970年代才出现。现代对API这个术语的使用经常指的是网络API,它们允许通过互联网连接的计算机之间进行通信。API的最新发展促进了微服务的流行,这些微服务是通过公共API访问的松散耦合服务。
应用程序接口有诸多不同设计。用于快速执行的接口通常包括函数、常量、变量与数据结构。也有其它方式,如通过解释器,或是提供抽象层以遮蔽同API实现相关的信息,确保使用API的代码无需更改而适应实现变化。
应用程序接口经常是软件开发工具包(SDK)的一部分。
API种类
API又分为(Windows、Linux、Unix等系统的)系统级API,及非操作系统级的自定义API。作为一种有效的代码封装模式,微软Windows的API开发模式已经为许多商业应用开发的公司所借鉴,并开发出某些商业应用系统的API函数予以发布,方便第三方进行功能扩展。如Google、苹果电脑公司,以及诺基亚等手机开发的API等等。
面向对象语言的API
库与框架的API
API与协议
API与设备接口
Web API
数据类API
- 用于用户身份识别的API,对用户身份进行核验,对开展活动进行风险有效性规避。
- 用于活动数据三方对接的API,将一方活动关键性数据,传递给另外一方。多用于集成系统的场景应用。
参考文献
- ^ 刘瑞新. 计算机组装、维护与维修教程. 机械工业出版社. 2018年8月29日: 229– [2020年7月28日]. ISBN 978-7-111-53541-6. (原始内容存档于2020年7月31日).
- ^ Musa Unmehopa; Kumar Vemuri; Andy Bennett. Parlay / OSA: From Standards to Reality. John Wiley & Sons. 4 August 2006: 282– [2020-07-28]. ISBN 978-0-470-02823-0. (原始内容存档于2020-07-31).
- ^ Fisher, Sharon. OS/2 EE to Get 3270 Interface Early. Google Books. 1989 [2020-07-28]. (原始内容存档于2020-07-26).
外部链接
- 设计好的应用程序接口之法及其重要性 (英文)
- 如何写应用程序接口 (页面存档备份,存于互联网档案馆) (英文) 可实现的范例,并带有详细的代码及原因。
- 面向服务的体系结构(SOA):通向企业应用集成(EAI)之路 (页面存档备份,存于互联网档案馆)(英文)
- ISO/IEC JTC 1 Directives, 5th Edition Version 3.0, Annex J: Guidelines for API standardization (页面存档备份,存于互联网档案馆)(英文)