首页 > 代码库 > 什么是API

什么是API

http://www.cnblogs.com/I-am-Betty/archive/2014/03/06/3584696.html

 作为一个编程初学者来说,API函数也许是一个时常耳闻却感觉有些神秘的东西。单看它的复杂语法,就足令人望而生畏,但是任何事物在我们深入了解它之前,总是会有这种感觉的。我们这篇API入门教程的目的,就是要把API函数的来龙去脉告诉大家,破除对API函数的畏惧,使它成为我们编程的好助手。  
     大家可能在许多书上看到过API的英文全称(Application Programming Interface),WIN32 API也就是MicrosoftWindows 32位平台的应用程序编程接口。对这个定义的理解,需要追溯到操作系统的发展历史上,当WINDOWS操作系统开始占据主导地位的时候,开发WINDOWS平台下的应用程序成为人们的需要。而在WINDOWS程序设计领域处于发展的初期,WINDOWS程序员所能使用的编程工具唯有API函数,这些函数是WINDOWS提供给应用程序与操作系统的接口,他们犹如“积木块”一样,可以搭建出各种界面丰富,功能灵活的应用程序。所以可以认为API函数是构筑整个WINDOWS框架的基石,在它的下面是WINDOWS的操作系统核心,而它的上面则是所有的华丽的WINDOWS应用程序。  
但是,那时的WINDOWS程序开发还是比较复杂的工作,程序员必须熟记一大堆常用的API函数,而且还得对WINDOWS操作系统有深入的了解。然而随着软件技术的不断发展,在WINDOWS平台上出现了很多优秀的可视化编程环境,程序员可以采用“即见即所得”的编程方式来开发具有精美用户界面和功能强大的应用程序。  
这些优秀可视化编程环境操作简单、界面友好(诸如VB、VC++、DELPHI等),在这些工具中提供了大量的类库和各种控件,它们替代了API的神秘功能,事实上这些类库和控件都是构架在WIN32 API函数基础之上的,是封装了的API函数的集合。它们把常用的API函数的组合在一起成为一个控件或类库,并赋予其方便的使用方法,所以极大的加速了WINDOWS应用程序开发的过程。有了这些控件和类库,程序员便可以把主要精力放在程序整体功能的设计上,而不必过于关注技术细节。  
实际上如果我们要开发出更灵活、更实用、更具效率的应用程序,必然要涉及到直接使用API函数,虽然类库和控件使应用程序的开发简单的多,但它们只提供WINDOWS的一般功能,对于比较复杂和特殊的功能来说,使用类库和控件是非常难以实现的,这时就需要采用API函数来实现。  
这也是API函数使用的场合,所以我们对待API函数不必刻来研究每一个函数的用法,那也是不现实的(能用的到的API函数有几千个呢)。正如某位大虾所说:API不要去学,在需要的时候去查API帮助就足够了。
      API是系统的基石,是Windows的一砖一瓦。  
明确一个概念,软件是运行在系统平台的支持上的,软件的功能其实就是向系统伸请,并由系统完成这些功能的过程。  
那么软件要做的事情如何传递给系统呢,也就是这些API的作用了,系统定义了这些API函数,做为支持软件执行系统功能的接口。  
不同的操作系统自然API会是不同的.
     API是一组作为应用程序呼叫某个功能与服务的函数。程序设计师可依据API函数撰写程序,让操作系统或某个程序激活某个程序以执行特定的功能。
基本上,API是操作系统的框架,通常包含在名为.DLL的动态连接库文件中,可控制Windows各个组件、外观与服务。而这一套事先预定的函数,可与在API下方的操作系统的核心沟通,进而呼叫其它程序或服务,且让程序设计师依据API,架构出各种的Windows应用程序。
    (出处:http://iask.sina.com.cn/b/4708399.html)
    (出处:http://tech.ccidnet.com/art/322/20050405/233693_1.html)

      API 就是应用程序编程接口。它是能用来操作组件、应用程序或者操作系统的一组函数。典型的情况下,API 由一个或多个提供某种特殊功能的 DLL 组成。(java中有所不同,但大同小异)DLL 是一个文件,其中包含了在 Microsoft Windows 下运行的任何应用程序都可调用的函数。运行时,DLL 中的函数动态地链接到调用它的应用程序中。无论有多少应用程序调用 DLL 中的某个函数,在磁盘上只有一个文件包含该函数,且只在它调入内存时才创建该 DLL.

       您听到最多的 API 可能是 Windows API,它包括构成 Windows 操作系统的各种 DLL。每个 Windows 应用程序都直接或间接地与 Windows API 互动。Windows API 保证 Windows 下运行的所有应用程序的行为方式一致。

       注意 随着 Windows 操作系统的发展,现已发布了几个版本的 Windows API。Windows 3.1 使用 Win16 API。Microsoft Windows NTindows 95 和 Windows 98 平台使用 Microsoft Win32 API。 除 Windows API 外,其他一些 API 也已发布。例如,邮件应用程序编程接口 (MAPI) 是一组可用于编写电子邮件应用程序的 DLL。

      API 传统上是为开发 Windows 应用程序的 C 和 C++ 程序员编写的,但其他的编程语言(包括VBA)也可以调用 DLL 中的函数。因为大部分 DLL 主要是为 C 和 C++ 程序员编写和整理说明的,所以调用 DLL 函数的方法与调用 VBA 函数会有所不同。在使用 API 时必须了解如何给 DLL 函数传递参数。

      警告 调用 Windows API 和 其他 DLL 函数可能会给您的应用程序带来不良影响。从自己的代码中直接调用 DLL 函数时,您绕过了 VBA 通常提供的一些安全机制。如果在定义或调用 DLL 函数时出现错误(所有程序员都不可避免),可能会在应用程序中引起应用程序错误(也称为通用性保护错误,或 GPF)。最好的解决办法是在运行代码以前保存该项目,并确保了解 DLL 函数调用的原理。

     (出处: http://www.360doc.com/content/07/0910/17/43302_733716.shtml)

    接口是一个抽象概念,一般有好几种层面的接口。Interface可翻译为界面也可翻译为接口,翻译为接口的由来应该是从电器的插口而来(未做考证)。通俗说法:接口就是用来连接而开放的入口。

    大致有这些类型的接口:硬件接口、用户界面(UI)、软件接口、面向对象接口。

    编程接口(API)应该是软件接口中的一个分支。当然接口在不同的领域有N多的分类。

    至于API一般仅仅限于应用程序的编程接口。通俗的解释应该是:一个组件(或程序库)提供给开发者进行编程使用的,通过代码可以与之沟通的入口。比如说你下载了一个控件包,通过阅读说明你知道应该如何创建上下文、初始化、设置属性、调用、回调、事件处理,这些就是这个控件包的API。

    API一般对应函数,在面向对象领域可能对应类提供的特性,而对于传输协议一般指协议的一种实现所提供的使用该协议的方式。

    返回值 方法名(参数1, 参数2 ...) 这就可以认为是接口

    接口:故名思议就是提供转接的口子。

    你可以理解为遵循同一个规则的多个程序之间交换数据的一种方式。

    往大了说,有网络接口。例如以 HTTP GET 方式请求 http://sf.gg 并获取返回值, http://sf.gg 就可以视为一个接口。MySQL client 使用 ip port user password 访问某个ip 端口上的 MySQL Server ,这个 Server 也可以视为接口。当然,javascript 通过 XMLHttpRequest 请求 http server 也可以视为一个接口通信。

    往小了说,有程序内部接口。在某个类里面调用其他类提供的方法,也可以算是接口。

    举两个例子: 1. 新浪微博是一个网站,所有的数据都是在新浪微博上的。新浪微博提供一整套的接口,调用接口我们可以获取到里面的数据。(相当于你的理解) 2. Windows是一个封装好的系统,按道理用户是没有权在Windows里头干任何事的,但是Windows提供了一整套的接口,调用接口我们可以操作Windows做出一些行为。

    所以我个人的理解是利用接口,我们可以对一个封装好的整体进行操作,不仅仅是获取数据(前端说的可能偏向这个方面吧,从整体获取或者向整体提交数据),还可以对整体进行操作。平常写的类也可以算是提供了接口,类是整体,类的成员函数就是接口。

     (出处: http://segmentfault.com/q/1010000000171568)

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

     应用程序接口为:“‘计算机操作系统(Operating system)’或‘程序库’提供给应用程序调用使用的代码”。其主要目的是让应用程序开发人员得以调用一组例程功能,而无须考虑其底层的源代码为何、或理解其内部工作机制的细节。API本身是抽象的,它仅定义了一个接口,而不涉入应用程序如何实现的细节。

例如,图形库中的一组API定义了绘制指针的方式,可于图形输出设备上显示指针。当应用程序需要指针功能时,可在引用、编译时链接到这组API,而运行时就会调用此API的实现(库)来显示指针。

     应用程序接口是一组数量上千、极其复杂的函数和副程序,可让程序员做很多任务作,譬如“读取文件”、“显示菜单”、“在视窗中显示网页”等等。操作系统的API可用来分配存储器或读取文件。许多系统应用程序借由API接口来实现,像是图形系统、数据库、网络Web服务,甚至是在线游戏。

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

     应用程序接口经常是软件开发工具包(SDK)的一部分

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

    (出处: http://zh.wikipedia.org/zh-cn/%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%8E%A5%E5%8F%A3)

什么是API