应用编程接口[1]application programming interface,API[2][3]),定义了在计算机之间或在计算机程序之间的连接,它是一种类型的软件接口,用来向软件的其他部分提供服务[4]。它规定了能进行的调用(call)或请求(request)的种类,如何进行调用或发出请求,应使用的数据格式,应遵循的惯例等,又称应用程序接口[5]。API还可以提供扩展机制,以便用户可以通过各种方式对现有功能进行不同程度的扩展[6]。一个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平台

编辑

JustOneAPI 专业的API服务商

数据类API

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

数据类API示例

编辑

使用第三方Walmart API获取Product Details数据:[7]

import requests

headers = {
    'X-Luckdata-Api-Key': 'your_luckdata_key'
}

json_data={}

response = requests.get(
    'https://luckdata.io/api/walmart-API/get_vwzq?url=https://www.walmart.com/ip/NELEUS-Mens-Dry-Fit-Mesh-Athletic-Shirts-3-Pack-Black-Gray-Olive-Green-US-Size-M/439625664?classType=VARIANT',
    headers=headers,
    
)
print(response.json())

通过这份python代码,我们可以获取到对应的product数据

参考文献

编辑
  1. ^ 陈至立; 巢峰. 应用编程接口. 辞海 7版网络版. 上海: 上海辞书出版社. [2025-02-02]. 
  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. ^ API. 术语在线. 全国科学技术名词审定委员会.  (简体中文)
  4. ^ Reddy, Martin. API Design for C++. Elsevier Science. 2011: 1. ISBN 9780123850041. 
  5. ^ 刘瑞新. 计算机组装、维护与维修教程. 机械工业出版社. 2018年8月29日: 229– [2020年7月28日]. ISBN 978-7-111-53541-6. (原始内容存档于2020年7月31日). 
  6. ^ Fisher, Sharon. OS/2 EE to Get 3270 Interface Early. Google Books. 1989 [2020-07-28]. (原始内容存档于2020-07-26). 
  7. ^ Walmart API | Luckdata. [Luckdata]. 

外部連結

编辑

参见

编辑

📚 Artikel Terkait di Wikipedia

ISAPI

ISAPI,即網際網路伺服器應用程式介面(Internet Server Application Programming Interface),是可被微软IIS加载和调用的底层的Win32风格的DLL。用于扩展HTTP服务器的功能。 利用ISAPI,可以用任何能够生成Windows标准DLL的编程

服务器应用程序接口

在计算机科学中,服务器应用程序接口(Server Application Programming Interface,或SAPI)是一个網頁伺服器(如Apache HTTP Server、微软IIS和Oracle iPlanet Web Server(英语:Oracle iPlanet Web

TAPI

TAPI(Telephony Application Programming Interface)全名電話應用程式化介面,是微軟公司所提供的應用程式介面,用於傳統電話撥接的功能。TAPI可用於控制調變解調器(modem),甚至是用戶交換機(PBX)。 一些廠商提供的驅動程式可以控制多組handsets

NPAPI

网景插件应用程序接口(英語:Netscape Plugin Application Programming Interface,縮寫:NPAPI)是一個跨平台的通用瀏覽器插件应用程序接口(API)。1995年由網景公司釋出,應用於网景导航者2.0版本,但其他瀏覽器很快也跟進支援,成為一個共通的插件

Ecma標準列表

Cyclic redundancy check polynomial CRC-64-ECMA-182 ECMA-234 – Application Programming Interface for Windows 3.1 ECMA 246 – Specification of AIT-1 ECMA-262

API (消歧義)

API可以指: 應用程式介面(英語:Application Programming Interface),是軟件系統不同組成部分銜接的約定。 原料药(英語:Active Pharmaceutical Ingredients),經過添加輔料、加工製成後可直接使用的藥物。 预报旅客信息(英語:Advance

詹姆斯·高斯林

0-201-63451-1 James Gosling, Frank Yellin, The Java Team, The Java Application Programming Interface, Volume 2: Window Toolkit and Applets, Addison-Wesley, 1996

Ensembl

该计划所开发并使用的大部分软件是用Perl语言编写的,并基于BiopPerl的基础框架。其他基因组计划亦可轻易使用Perl语言的应用程序接口(Application programming interface,API)。比方说,可以使用它对基因或者克隆目录进行诠释。 美国国家生物技术信息中心(NCBI) UCSC基因组浏览器(英语:UCSC