求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

變更

前往: 導覽搜尋

应用程序接口

增加 8,640 位元組, 2 年前
创建页面,内容为“应用程序编程接口,简称API(Application Programming Interface),就是软件系统不同组成部分衔接的约定。 '''中文名''':…”
应用程序编程接口,简称API(Application Programming Interface),就是[[软件]]系统不同[[组成]]部分衔接的[[约定]]。

'''中文名''':[[应用程序编程接口]]

'''外文名''':application programming interface

'''简 称''':API

'''领 域''':[[信息科学]]

==简介==

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

==目的==

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

==原理==

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

从用户角度看应用程序接口,表现为一系列API函数,用户可以使用这些函数进行网络应用程序开发。从网络角度看,应用程序接口给用户提供了一组方法,用户可以使用这组方法向应用层发送业务请求、信息和数据,网络中的各层则依次响应,最终完成网络数据传输。 <ref>[[任德凌, 顾毓清. 面向对象的应用程序编程接口的设计与实现[J]. 小型微型计算机系统, 2001, 22(7):813-815.]]</ref>

==程序介绍==

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

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的实现(库)来显示图标。<ref>[[王东临, 邹开红. 一种将UOML封装成应用程序编程接口的方法:, CN 101192141 B[P]. 2010.]]</ref>

==系统分类==

操作系统的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。它是传输层为用户提供的应用程序接口,可以用来在传输层进行应用开发。 <ref>[[余志勇, 李忠义. Delphi环境下电话应用程序编程接口(TAPI)的应用[J]. 计算机工程与应用, 2000, 36(12):97-99.]]</ref>

==视频==

'''什么是小程序'''

{{#iDisplay:l1324wwtu3r | 560 | 390 | qq }}
==参考文献==
{{Reflist}}
13,329
次編輯