应用程序接口

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

  • JAVA API 列表英语List of Java APIs

库与框架的API

  • Windows API
  • 微软Windows的DirectX
  • Simple DirectMedia Layer(SDL)

API与协议

  • LDAP應用程式介面英语LDAP Application Program Interface

API与设备接口

  • PC BIOS调用接口
  • ASPI for SCSI device interfacing

Web API

主要的API平台

JustOneAPI 专业的API服务商

  • Google地图的API
  • MediaWiki API

数据类API

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

数据类API示例

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

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数据

外部連結

  • 设计好的应用程序接口之法及其重要性 (英文)
  • 如何写应用程序接口 (页面存档备份,存于互联网档案馆(英文) 可实现的范例,并带有详细的代码及原因。
  • 面向服务的体系结构(SOA):通向企业应用集成(EAI)之路 (页面存档备份,存于互联网档案馆(英文)
  • ISO/IEC JTC 1 Directives, 5th Edition Version 3.0, Annex J: Guidelines for API standardization (页面存档备份,存于互联网档案馆(英文)

参见

维基百科, wiki, wikipedia, 百科全书, 书籍, 图书馆, 文章, 阅读, 免费下载, 关于 应用程序接口 的信息, 什么是 应用程序接口?应用程序接口 是什么意思?