API: 概念:API(应用程序编程接口)是一组预定义函数,旨在为应用程序和开发人员提供访问基于某种软件或者硬件的一组例程的能力,而无需访问源代码或了解内部工作机制的细节。
SDK:概念:软件开发工具包(国外缩写:SDK,国外全称:Kit)一般是软件工程师用来针对特定的软件包、软件框架、硬件平台、操作系统等构建应用软件的开发工具的集合。
通俗的说,API 可以比喻成房门钥匙。在一个房子里,每个房间都有不同的用途和资源。当我们想要获取对应房间中的资源时,需要先用钥匙打开门。比如我们想从书房拿一本书,或者从卧室拿一个枕头,就需要先找到对应的房间钥匙,然后进入房间才能拿到书或枕头。调用 API 的过程,就是用钥匙开门的过程。
SDK 把这些钥匙组合起来,把 API 整合到一起,有了 SDK,你就可以在家里自由活动,如果你想要获取某个房间的资源,你只要拿着钥匙打开门,进去就可以获取。
两者的区别:API是某个函数,作用明确(比如加法)。SDK就像是很多方法的集合,一个工具。比如你要加法就调用电脑SDK的加法API来实现,你要减法就调用减法API来实现。不管你要完成什么计算,SDK里总有一个方法可以实现。
我们再举一个例子,比如你要开车去一个地方,汽车就是SDK,让你到达目的地。汽车上的方向盘、灯光、引擎、油门、刹车等都像API一样实现了,你使用SDK的时候,会一个一个的调用API函数,如果汽车更贴心一些,可能还会附带使用说明(SDK文档)。API分为开放API和私有API,顾名思义,开放API就是对所有人开放的接口,允许任何人调用它,获取其背后的数据。它就像一个图书馆,你只需要进行相应的身份认证,就可以进入并获取相应的图书和资源,而身份认证是你获取资源的钥匙。现在很多公司都开放了自己的开放API,而且为了方便用户,大多都以SDK文档的形式封装起来,在调用的时候,用户只需要下载SDK文档,按照相应的规范调用就可以了。这样就省去了重写函数封装http等请求的工作,省下更多的时间去做更有价值的事情。比如:
在使用App登录的时候,你可以选择通过微信、微博、QQ等第三方登录,这其实就意味着你的App接入了第三方登录SDK;
App支持分享内容到微信、微博、QQ空间等第三方平台,这其实就意味着你的App接入了第三方分享SDK。
电商应用支持微信、支付宝、百度钱包等支付方式,这其实就意味着你的应用接入了第三方支付SDK。
…
另外现在有些公司会把这些作为产品来卖,比如百度的AI市场就卖语音识别、语音合成、人脸识别、美颜等SDK,研发使用现成的SDK,节省了研发时间。
例如,免费资源语音识别中有开发文档和SDK下载
那么连接第三方SDK之后,测试过程中需要注意什么呢?
这是第三方SDK接入测试,供参考
另外,由于是第三方SDK,所以需要确定具体的第三方负责人;
Bug 跟踪也应该与分配给团队的 Bug 区分开来,因为当你在 Bug 管理系统中提交 Bug 时,第三方人员通常没有内部权限。如果他们没有权限,那么你应该找到其他的方式来收集和跟踪,例如;
如果管理员开启并分配了权限,第三方人员通常不会及时关注自己之外的缺陷管理系统,这也需要您及时反馈并跟进,避免问题处理周期过长。