人文艺术 > 什么是API接口,具体是什么意思?

什么是API接口,具体是什么意思?

2020-11-16 23:05阅读(59)

什么是API接口,具体是什么意思?:作为软件应用而言,很多资源和数据不一定就是由其自身提供的,某些功能还是需要调用第三方提供的服务,这其中就涉及到API接口:

1

作为软件应用而言,很多资源和数据不一定就是由其自身提供的,某些功能还是需要调用第三方提供的服务,这其中就涉及到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。

以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!

2

API(接口)是什么?举个常见的例子,在京东上下单付款之后,商家选用顺丰发货,然后你就可以在京东上实时查看当前的物流信息。京东和顺丰作为两家独立的公司,为什么会在京东上实时看到顺丰的快递信息,这就要用到API,当查看自己的快递信息时,京东利用顺丰提供的API接口,可以实时调取信息呈现在自己的网站上。除此,你也可以在快递100上输入订单号查取到快递信息。只要有合作,或是有允许,别的公司都可以通过顺丰提供的API接口调取到快递信息。既然有多方调用,那提供一个统一的调用规范会方便很多。

我们看下百度是怎么给出API的定义的:

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

从百度定义中,我们先划下重点:函数、 提供应用程序与开发人员 、无需访问源码、例程 。注意这四个短语。其中,例程是某个系统对外提供的功能接口或服务的集合,本文着重说下API的数据服务功能接口

首先,下面的文章我会先演示怎么通过浏览器,不需要编程、不需要访问源码,来调用免费的API接口,达到让你怎么使用最简单的接口;

然后,会演示怎么通过编程去调用接口;

最后,演示开启WEB服务,写一个简单的API接口,以体现出API的函数 (y=f(x)) 功能。

你也可以复制代码试下。通过你自己的尝试,你会了解到些后端、前段的东西,并加深你对API的理解。那么我们就开始吧,先上一个图:以API提供信息(数据)的功能,看下数据是怎么流动的。如果给API一个具体的位置的话,就位于下图中央。

为了更改的理解,我穿插一个故事角色。假如,世界太大,身处非洲大陆的你想去看看,成为了一个水手,被一位著名的航海家带去去远航(你掌握着船上唯一一台卫星电脑),途中不免航海家会让确定下城市的经纬度。这时航海家让你去确定下深圳市的经纬度。

1、你是个人肉API

这时,你能想到简单的办法就是去百度搜索一下。 除了航海家,船上的高级水手、大副,估计都有可能向你问,这个时候,其实你就是一个接口,大家都来向你获取地理位置信息,作为接口,你本身不产生信息,你只是信息的搜集者、传递者,提供人肉数据服务。

2、使用免费的经纬度API接口

在百度搜索的过程中,众多网友给出的经纬度不一致,你要反复对比,去辨真伪。时间长了,你可能会觉得大家都问位置,太烦了,我这个人肉API效率太慢,有没有更快的方式。

这时你发现了一个阿里云的一个免费的API接口:http://gc.ditu.aliyun.com/geocoding?a=深圳。你在浏览器地址栏输入了这个URL,果然得到了正确的经纬度,你又把URL中的深圳改为了别的城市,发现也可以查到。这时,通过这个接口,你给大伙确定位置的效率大大提升。

3、你不满足于此

你觉得这个接口太好了,刚好你会点Python,何不写点代码,注意这个时候你的角色发生了变化:你由一个人肉API转变了一个开发人员(注意这个是百度API定义中的关键词),你现在的目标是写代码,能够自动获取到这个某个地方的经纬度

到这里,我们再来回顾下API的百度定义。目前,你作为一个开发人员, 具备通过写了几行代码访问“阿里云经纬度接口”的能力, 你无需访问这个API的源码、不需要理解这个API是怎么弄成的 。也就是,不管是通过浏览器,还是编程语言,目前你已经会用简单的API了。

4、在会用简单API的接口后,你进一步想知道它的内在机制是什么

建立在会用的基础之上,那么API的源码、其内在机制是怎么回事?目前你能调用经纬度的API,简单的获取到位置还不够,你可能自己想写一个API接口,不紧紧提供位置信息,同时附加上对这个城市的介绍

执行web_server.py,执行后就会开启一个web服务

接着,我们在浏览器输入http://192.168.199.204:8888/?id=深圳

注意,我自己的电脑局域网IP是192.168.199.204,需要替换成你自己电脑(或虚拟机)的ip

从上图看,我们实现了,和”阿里云经纬接口“的相同功能,并且获取到了除经纬度,还有对城市的简单描述。随着航行越来越多,你让船上的大伙不仅了解了地理位置信息,也了解了每个城市的经济人文情况。随着信息数据的增多,特别需要一个东西能先把数据先保存起来,用到的时候,API再直接调用。

5、数据储存,调我所需

上面我们模仿了阿里云的API,自己搭建了一个web服务,提供了一个更为详细的API地理位置信息服务。现在想一下,我们的代码里只有深圳、青岛两个城市,还有很多没提到的城市,另外,城市还有经济发展情况、饮食文化等。我们把深圳、青岛两个城市信息存入到mysql里。

存入之后,我们从mysql里直接拿数据,通过API直接展现在到浏览器中。改动 web_server.py脚本中的

保存web_server.py后,再执行重启下,浏览器地址输入http://192.168.199.204:8888/?id=深圳,出现与第4步同样的结果,但这次是从mysql中拿数据,通过API接口展示到浏览器的。至此,你不仅会使用API,而且也通过tornado开启web服务、开启了一个API查询接口。

最后再总结一下,从上面的文中,首先我大概画了一张图,结合数据的流动,描述了API的位置,接着用了一个故事从一个信息的搜集者,怎么利用现有的接口,去提供一个更棒的接口。当然这个太简单了。但我觉得也能说明API的基本意思,生产环境中API要复杂的多牵涉到数据的复杂性、接口的稳定性、高可用、还有安全性。

3

什么是API接口?是个错误的说法。

应该是“什么是API”?

这种问题表述方式就说明了问题的本质,就是API这事,用中文表述不太“顺畅”。

日常交流,特别是网络上交流中,解释API是什么意思,与交流过程的上下文相关性极强。在交流者彼此了解的背景下,这种概念的模糊性不会带来任何理解困难。

非专业人员,不吹牛,真的没必要理解什么是API。