应用程式接口

应用程式接口

应用程式编程接口,简称API(Application Programming Interface),就是软体系统不同组成部分衔接的约定。

    • 中文名:应用程式编程接口
    • 外文名:application programming interface
    • 简称:API
    • 领域:信息科学

简介

应用程式接口(英语:Application Programming Interface,简称:API),又称为套用编程接口,就是软体系统不同组成部分衔接的约定。由于近年来软体的规模日益庞大,常常需要把複杂的系统划分成小的组成部分,编程接口的设计十分重要。程式设计的实践中,编程接口的设计首先要使软体系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的维护性和扩展性。

目的

API之主要目的是提供应用程式与开发人员以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。提供API所定义的功能的软体称作此API的实现。API是一种接口,故而是一种抽象。

原理

在数据封装时,网路分层中的每个层相互之间会用接口进行互动并提供服务,其中套用层与用户之间的接口称之为应用程式接口(API,Application Programming Interface)。API实际上是一种功能集合,也可说是定义、协定的集合,无论是那种集合,它的实质都是通过抽象为用户禁止实现上的细节和複杂性。

从用户角度看应用程式接口,表现为一系列API函式,用户可以使用这些函式进行网路应用程式开发。从网路角度看,应用程式接口给用户提供了一组方法,用户可以使用这组方法向套用层传送业务请求、信息和数据,网路中的各层则依次回响,最终完成网路数据传输。

程式介绍

随着软体规模的日益庞大,需要把複杂系统划分成小的组成部分,编程接口的设计十分重要。程式设计的实践中,编程接口的设计首先要使系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的维护性和扩展性。

API之主要目的是提供应用程式与开发人员以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。提供API所定义的功能的软体称作此API的实现。API是一种接口,故而是一种抽象。 A reference implementation of an API is the implementation created by the designer of the API, or one which other implementations of the API are expected to be compared against.

例如,图形库中的一组API定义调用绘製图示函式的方式,以于萤幕上显示图示。程式中调用,编译时连线到这组API,执行时便调用API的实现(库)来显示图示。

系统分类

作业系统的API可用来分配记忆体或访问档案。许多系统与应用程式提供API接口与实现,比如图形系统,资料库,网路,Web服务,甚至于某些游戏。

一组API经常是一套软体开发工具包(Software Development Kit,SDK)的一部分。SDK亦可包含其它工具亦或至于硬体,两个术语并不完全等同.

API又分为(Windows、Linux、Unix等系统的)系统级API,及非作业系统级的自定义API。作为一种有效的代码封装模式,微软Windows的API开发模式已经为许多商业套用开发的公司所借鉴,并开发出某些商业套用系统的API函式予以发布,方便第三方进行功能扩展。如Google、苹果电脑公司,以及诺基亚等手机开发的API等等。

API有诸多不同设计。用于快速执行的接口通常包括函式,常量,变数与数据结构。也有其它方式,如通过解释器,或是提供抽象层以遮蔽同API实现相关的信息,确保使用API的代码无需更改而适应实现变化。

API:应用程式接口(API:Application Program Interface)应用程式接口(API:application programming interface)是一组定义、程式及协定的集合,通过 API接口实现计算机软体之间的相互通信。API 的一个主要功能是提供通用功能集。程式设计师通过使用 API函式开发应用程式,从而可以避免编写无用程式,以减轻编程任务。 API 同时也是一种中间件,为各种不同平台提供数据共享。根据单个或分散式平台不同软体应用程式间的数据共享性能,可以将 API 分为四种类型:远程过程调用(RPC):通过作用在共享数据快取器上的过程(或任务)实现程式间的通信。 标準查询语言(SQL):是标準的访问数据的查询语言,通过通用资料库实现应用程式间的数据共享。 档案传输:档案传输通过传送格式化档案实现应用程式间数据共享。 信息交付:指松耦合或紧耦合应用程式间的小型格式化信息,通过程式间的直接通信实现数据共享。 当前套用于 API 的标準包括 ANSI 标準 SQL API。另外还有一些套用于其它类型的标準尚在制定之中。API可以套用于所有计算机平台和作业系统。这些 API以不同的格式连线数据(如共享数据快取器、资料库结构、档案框架)。每种数据格式要求以不同的数据命令和参数实现正确的数据通信,但同时也会产生不同类型的错误。因此,除了具备执行数据共享任务所需的知识以外,这些类型的 API还必须解决很多网路参数问题和可能的差错条件,即每个应用程式都必须清楚自身是否有强大的性能支持程式间通信。相反由于这种 API只处理一种信息格式,所以该情形下的信息交付 API 只提供较小的命令、网路参数以及差错条件子集。正因为如此,交付 API方式大大降低了系统複杂性,所以当应用程式需要通过多个平台实现数据共享时,採用信息交付 API 类型是比较理想的选择。API 与图形用户接口(GUI)或命令接口有着鲜明的差别:API 接口属于一种作业系统或程式接口,而后两者都属于直接用户接口。有时公司会将 API 作为其公共开放系统。也就是说,公司制定自己的系统接口标準,当需要执行系统整合、自定义和程式套用等操作时,公司所有成员都可以通过该接口标準调用原始码,该接口标準被称之为开放式 API。

常见应用程式接口

套用层的应用程式接口有很多,并且发展很快,比较常见的如socket、FTP、HTTP以及telnet。这些接口从大类上可分为四类:

  • 远程过程调用(RPC,Remote Procedure Call Protocol)

  • 数据查询接口

  • 档案类接口

  • 数据通信接口

例如FTP协定就是档案类接口,基于FTP,用户可以实现档案在网路间的共享和传输。而socket和HTTP可归结为数据通信接口,基于这两种接口,用户可以开发网路通信应用程式,以及web页面互动程式。当然如果从编程开发角度看,无论是FTP、HTTP还是telnet,都是基于socket接口开发出来的套用层协定,是对socket接口的进一步封装和抽象,从而为用户提供更高一层的服务和接口。

socket有时称之为“Berkeley Socket”,它是最早由伯克利开发的应用程式接口。常用的socket类型有两种:流式socket(SOCK_STREAM)和数据报式socket(SOCK_DGRAM)。

  • 流式socket是一种面向连线的socket,针对于面向连线的TCP服务套用。

  • 数据报式socket是一种无连线的socket,对应于无连线的UDP服务套用。

从用户接口意义上讲,还有传输层的TLI接口,是由AT&T开发的,有时也称作XTI。它是传输层为用户提供的应用程式接口,可以用来在传输层进行套用开发。

相关词条

相关搜索

其它词条