API定义前端
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工做机制的细节。linux
分类web
Windows API
API函数包含在Windows系统目录下的动态链接库文件中。Windows API是一套用来控制Windows的各个部件的外观和行为的预先定义的Windows函数。用户的每一个动做都会引起一个或几个函数的运行以告诉Windows发生了什么。这在某种程度上很像Windows的自然代码。而其余的语言只是提供一种能自动并且更容易的访问API的方法。当你点击窗体上的一个按钮时,Windows会发送一个消息给窗体,VB获取这个调用并通过分析后生成一个特定事件。
更易理解来讲:Windows系统除了协调应用程序的执行、内存的分配、系统资源的管理外,同时他也是一个很大的服务中心。调用这个服务中心的各类服务(每一种服务就是一个函数)能够帮助应用程序达到开启视窗、描绘图形和使用周边设备等目的,因为这些函数服务的对象是应用程序,因此称之为Application Programming Interface,简称API 函数。WIN32 API也就是MicrosoftWindows 32位平台的应用程序编程接口。
凡是在 Windows工做环境底下执行的应用程序,均可以调用Windows API。
linux API
在linux中,用户编程接口API遵循了UNIX中最流行的应用编程界面标准---POSIX标准。POSIX标准是由IEEE和ISO/IEC共同开发的标准系统。该标准基于当时现有的UNIX实践和经验,描述了操做系统的系统调用编程接口API,用于保证应用程序能够在源程序一级上在多种操做系统上移植运行。这些系统调用编程接口主要是经过C库(LIBC)来实现的。
API 声明
编辑
正如在"什么是API"中所说,API函数包含在位于系统目录下的DLL文件中。你能够本身输入API函数的声明,但VB提供了一种更简单的方法,即便用API Text Viewer。 要想在你的工程中声明API函数,只需运行API Text Viewer,打开Win32api.txt或MDB。若是你已经把它转换成了数据库的话,这样能够加快速度。 使用预约义的常量和类型也是一样的方法。 API除了有应用“应用程序接口”的意思外,还特指API的说明文档,也称为帮助文档。
程序功能
远程过程调用(RPC):经过做用在共享数据缓存器上的过程(或任务)实现程序间的通讯。
标准查询语言(SQL):是标准的访问数据的查询语言,经过通用数据库实现应用程序间的数据共享。
文件传输:文件传输经过发送格式化文件实现应用程序间数据共享。
信息交付:指松耦合或紧耦合应用程序间的小型格式化信息,经过程序间的直接通讯实现数据共享。
当前应用于 API 的标准包括ANSI 标准SQL API。另外还有一些应用于其它类型的标准尚在制定之中。API 能够应用于全部计算机平台和操做系统。这些API 以不一样的格式链接数据。每种数据格式要求以不一样的数据命令和参数实现正确的数据通讯,但同时也会产生不一样类型的错误。所以,除了具有执行数据共享任务所需的知识之外,这些类型的API 还必须解决不少网络参数问题和可能的差错条件,即每一个应用程序都必须清楚自身是否有强大的性能支持程序间通讯。相反因为这种API 只处理一种信息格式,因此该情形下的信息交付API 只提供较小的命令、网络参数以及差错条件子集。正由于如此,交付API 方式大大下降了系统复杂性,因此当应用程序须要经过多个平台实现数据共享时,采用信息交付API 类型是比较理想的选择。
WeBAPI
Web Api,网络应用程序接口。它包含了普遍的功能,网络应用经过API接口,能够实现存储服务、消息服务、计算服务的能力,利用这些能力能够进行开发出强大功能的web应用。简单来讲,就是一个接口,好比说,咱们要作先后端分离的项目,前端和后端经过url链接,可是咱们如何知道后端的数据是否通了,返回的数据是否正确,因而咱们经过这个接口知道。数据库
为何使用web API编程
Web API最重要的是能够构建面向各类客户端的服务。另外与WCF REST Service不一样在于,Web API利用Http协议的各个方面来表达服务(例如 URI/request response header/caching/versioning/content format),所以就省掉不少配置。后端
当你遇到如下这些状况的时候,就能够考虑使用Web API了。api
- 须要Web Service可是不须要SOAP
- 须要在已有的WCF服务基础上创建non-soap-based http服务
- 只想发布一些简单的Http服务,不想使用相对复杂的WCF配置
- 发布的服务可能会被带宽受限的设备访问
- 但愿使用开源框架,关键时候能够本身调试或者自定义一下框架
Web API的主要功能:缓存
1. 支持基于Http verb (GET, POST, PUT, DELETE)的CRUD (create, retrieve, update, delete)操做服务器
经过不一样的http动做表达不一样的含义,这样就不须要暴露多个API来支持这些基本操做。网络
2. 请求的回复经过Http Status Code表达不一样含义,而且客户端能够经过Accept header来与服务器协商格式,例如你但愿服务器返回JSON格式仍是XML格式。
3. 请求的回复格式支持 JSON,XML,而且能够扩展添加其余格式。
4. 原生支持OData。
5. 支持Self-host或者IIS host。
6. 支持大多数MVC功能,例如Routing/Controller/Action Result/Filter/Model Builder/IOC Container/Dependency Injection。