应用程序接口

设置子程序定义、协议和软件构建工具和应用程序
(重定向自编程接口

应用程序接口(英語: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又分为(WindowsLinuxUnix等系统的)系统级API,及非操作系统级的自定义API。作为一种有效的代码封装模式,微软Windows的API开发模式已经为许多商业应用开发的公司所借鉴,并开发出某些商业应用系统的API函数予以发布,方便第三方进行功能扩展。如Google苹果电脑公司,以及诺基亚等手机开发的API等等。

面向对象语言的API

编辑

库与框架的API

编辑

API与协议

编辑

API与设备接口

编辑

Web API

编辑

数据类API

编辑
  • 用于用户身份识别的API,对用户身份进行核验,对开展活动进行风险有效性规避。
  • 用于活动数据三方对接的API,将一方活动关键性数据,传递给另外一方。多用于集成系统的场景应用。

参考文献

编辑
  1. ^ 刘瑞新. 计算机组装、维护与维修教程. 机械工业出版社. 2018年8月29日: 229– [2020年7月28日]. ISBN 978-7-111-53541-6. (原始内容存档于2020年7月31日). 
  2. ^ 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). 
  3. ^ Fisher, Sharon. OS/2 EE to Get 3270 Interface Early. Google Books. 1989 [2020-07-28]. (原始内容存档于2020-07-26). 

外部連結

编辑

参见

编辑