如果你是一个产品经理,在和工程师的沟通中一定听过 API 这个词,百度百科的解释如下:
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
看完这个解释,大多数人一脸懵逼,这 TM 究竟指什么?下面听我细细讲来。为了方便理解,笔者将常见的 API 分为 三类:
1. 操作系统级 API
以 Android 系统为例,当工程师�写一个 Android APP 时,需要使用手机拍照功能采集用户头像,工程师如何让手机自动打开拍照界面并获取拍照的图片呢?控制手机摄像头,看起来是个很复杂的操作,实际上只需调用一句核心代码即可实现:
Camera.takePicture()
调用该函数后,手机便会打开相机,按下快门后程序自动获取拍照后的图片。而上面的这个拍照函数,就是 Android 系统提供的 API。
对应的,诸如获取 GPS 坐标、向服务器发送请求、连接蓝牙、显示图片、视频等操作,都是由这种一个个函数操作实现的。工程师不需要关心硬件是如何调用的、只需按照规范,调用 Android 的 API 即可。
Android API 详细数起来有数千个,在官方文档上每个都有详细的说明,感兴趣的可以详细去了解:Android 官方文档
除了 Android,常见的操作系统还有 iOS、Windows 、Linux 等,为不同的操作系统写程序,调用的 API 也都不同,但核心思想都是一致的。
2. 库与框架的API
移动端 APP 经常需要用到一些第三方的服务,比如需要统计 APP 使用情况时,会用到友盟统计、TalkingData,需要实现一键分享到多个社交媒体时,会用到 ShareSDK。使用这类第三方服务之前,需要在 APP 中嵌入对应的代码库,然后再调用他们开放的 API,比如要在按钮上加监测,触发下面的代码即可
MobclickAgent.onEvent(Context context, String eventId);
这里的 API 也指具体的函数,触发该函数后友盟会自动收集事件信息,并将监测数据发送到服务器,开发 app 的工程师则不需关心这些细节。
3. Web API
�Web API 不是一个具体的编程语言函数,而是一个 http 请求。比如,一个第三方 APP 需要获取用户微博信息,可以发起如下的 http 请求获取:
https://api.weibo.com/2/users/show.json
通过下面的请求获取用户粉丝列表:
https://api.weibo.com/2/friendships/followers.json
当然,获取这些信息的前提是需要用户授权,涉及到参数传递以及权限认证,这里不详细阐述。
上面是微博开放的两个 API 的例子,除了微博你能想到的服务大多数都有开放 API,诸如图像识别、语音合成、车票查询、天气查询,只需一个 http 请求的调用,即可完成你想要的任务,百度还专门做了一个 API Store,�汇集了市面上常见的 API: http://apistore.baidu.com/
即使是自家的产品,不希望服务对外开放,使用 API 调用的方式也可以大大提高开发效率。对此感兴趣的同学,可以自行搜索 RESTful API
下次再听到 API 的时候,不要被唬住,�想想上面的内容,接着愉快地跟工程师聊天吧。