作为软件应用而言,很多资源和数据不一定就是由其自身提供的,某些功能还是需要调用第三方提供的服务,这其中就涉及到API接口的调用。
什么是API接口?
API是指应用程序编程接口,我们通过API接口可以实现特定的功能,而不需要了解其内部实现细节。可以把API接口理解为是特定服务的一种封装,将服务封装起来提供给他人调用,这样一来很多功能不需要从新开发。
举个例子,我们想要知道一周天气如何,如果由自己来实现这个功能很难,因为天气数据只有气象部门才知道。那该如何知道天气信息呢?气象部分提供数据API给我们使用,我们只要输入地区就会知道该地区一周的天气情况,但我们并不需要了解这天气预报是如何实现的。
另外,不同系统和编程语言之间的数据通讯往往也采用API形式进行数据交接。
常见的API形式有哪些?
上面我们说到了,API其实就是一类服务的封装。我们可以使用不同的编程语言编写API,开发习惯和编程语言的不同导致API风格也存在差异。常见的API有以下几种形式:
1、HTTP类型接口
基于HTTP协议提供的API,这类API常常以“网址”形式提供的,像现在主流的RESTful就属于这类接口。
2、RPC接口
RPC它是指远程过程调用,将一部分代码逻辑放在远程服务器上部署,然后在需要的地方调用即可(调用远程方法就像调用本地方法一样),本质上是Client/Server模式,而且支持多种协议和数据传输方式。
3、Web Service 接口
Web Service并不具象地指某种API,我们将以WEB形式提供的服务都称之为Web Service,像RESTful也属于Web Service。
什么叫数据接口?
接口可以比喻为:一个通道,两个相互独立的程序,通过这个接口通道,实现数据传输,信息交流。当然这两个程序都必须遵守这个接口规定的一些标准,只有共同遵守这个接口标准,才能进行正常的通信。
如:程序A 把它运行后的结果数据(比如包括:数量,单价)分别放在了,红盒子和黑盒子里,(即:红盒子里放的是:数量如1000个,黑盒子里放的是:单价10元/个)那么其它程序,如程序B 就可以到红盒子里读取数量,到黑盒子里读取单价,按照红盒子里放数量,黑盒子里放单价的这个事先规定好的标准,两个程序之间进行了正常的数据传递。这个事先规定或预订好的标准,即可称为这两个程序之间的“接口”。
像是目前体育数据接口就异常火爆,因为大众对体育数据要求的增多,纳米数据是亚洲地区优秀的体育数据服务商,致力于体育数据的本土化研究,为亚洲区体育媒体、体育产品、职业球队提供专业的数据服务。
纳米数据覆盖足球、篮球、网球、棒球、电竞等 20 余个体育项目,可提供包括比赛实时数据、历史统计数据、深度分析数据、动画直播等全维度数据服务。
API是什么?
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
分类
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,让开发者可以基于这些接口自主开发,目前大火的机器学习领域也有很多开放接口供开发者尝新