API

什么是API?html

应用程序编程接口,简称API(Application Programming Interface),就是软件系统不一样组成部分衔接的约定。程序员

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

从用户角度看应用程序接口,表现为一系列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的实现(库)来显示图标。数据结构

系统分类app

操做系统的API可用来分配内存或访问文件。许多系统与应用程序提供API接口与实现,好比图形系统,数据库,网络,Web服务,甚至于某些游戏。框架

一组API常常是一套软件开发工具包(SDK)的一部分。SDK亦可包含其它工具亦或至于硬件,两个术语并不彻底等同.

API又分为(Windows、Linux、Unix、Mac等系统的)系统级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。它是传输层为用户提供的应用程序接口,能够用来在传输层进行应用开发。

 

 

注:来自360百科

相关文章
相关标签/搜索