程序员常说的API,他到底是个啥
- 定义(たぶん?):
- 一些实例:
- 更深入的了解:
定义(たぶん?):
API(Application Program Interface),可以被翻译为应用程序界面(来自百度百科)或者应用程序编程接口(来自网络)
它可以被理解成封装好的函数、可供调用的轮子。它可以使程序员在无需访问源代码,理解内部逻辑的前提下完成对功能的调用。
API被定义为应用程序可用以与计算机操作系统交换信息和命令的标准集。一个标准的应用程序界面为用户或软件开发商提供一个通用编程环境,以编写可交互运行于不同厂商计算机的应用程序。
接口这个翻译实在是太精辟了。看到这个词很难不去将API的调用过程与插入U盘存储数据的过程联想起来。想象一个可以实现功能的服务器,将电脑用接口连接便可以使用服务器的功能,简直是生动又形象。
一些实例:
Python中,存在很多功能强大的第三方库,库中那些一个个功能完整的、可供调用的、封装好的函数就可以理解为API。当然其他编程语言同样需要由这些功能丰富的API来实现功能。
下方代码便是一个使用python调用阿里云中实现经纬度查询的API接口的实例(链接似乎已失效)
#python
import requests
r = requests.get("http://gc.ditu.aliyun.com/geocoding?a=深圳")
loc = r.json()
print loc
#打印出的结果:{u'alevel': 4, u'lon': 114.05786, u'level': 2, u'cityName': u'', u'address': u'', u'lat': 22.54309}
# 与在浏览器输入地址的结果一致
print "深圳的经度是%s,纬度是%s" % (loc["lon"], loc["lat"])
#打印出的结果是:深圳的经度是114.05786,纬度是22.54309
*该例来自https://zhuanlan.zhihu.com/p/30742302
在这段代码中,我们所写出的部分并没有能够完成查询经纬度的功能。我们自己敲出来的部分其实只是在访问网址,然后取得网址内得到的结果,最后完成输出而已。这便是调用API了。
再比如C语言中,位于stdlib.h头文件中的malloc函数。malloc函数作为一个在分配内存非常常用的函数,我们对他的调用是非常频繁的。当程序员想要完成内存分配的功能时,应该很少有人去重写一下内存分配功能吧(たぶん?)。
# include <stdio.h>
# include <malloc.h>
int main(void)
{
int* arr = (int*)malloc(sizeof(int) * N)
}
比如上面这一段调用malloc函数完成数组大小拓展。我们并没有写出能实现分配内存给数组功能的具体代码,但是调用malloc函数这个接口帮助我们实现了这一操作。
更深入的了解:
从以上两个示例可以看出,API接口能调用的内容功能并不局限。API的调用不局限于web服务,内存分配与指定,绘制分界线啥的啥的。只要是你能够找到的,能够适用情景的,能够被成功调用的接口,那就可以成为API接口把这一段叫做更深入的了解属实有点名不副实了