sdk和api的区别是什么 sdk对接与api对接区别

作者:简道云
来源:知乎
著作权归作者所有 。商业转载请联系作者获得授权,非商业转载请注明出处 。
不知道区别的人,大概率是你还没搞懂 API、SDK 是什么 。
讲个小故事:
研发人员 A 开发了软件 A,研发人员 B 正在研发软件 B 。
有一天,研发人员 B 想要调用软件 A 的部分功能来用,但是他又不想从头看一遍软件 A 的源码和功能实现过程,怎么办呢?
研发人员 A 想了一个好主意:我把软件 A 里你需要的功能打包好,写成一个函数 。你按照我说的流程,把这个函数放在软件 B 里,就能直接用我的功能了!
其中,API 就是研发人员 A 说的那个函数 。
【sdk和api的区别是什么 sdk对接与api对接区别】

sdk和api的区别是什么 sdk对接与api对接区别

文章插图

sdk和api的区别是什么 sdk对接与api对接区别

文章插图
这就是 API 的诞生 。
日常生活中,我们有很多类似 API 的场景,比如:
电脑需要调用手机里面的信息,这时候你会拿一根数据线将电脑手机连接起来,电脑和手机上连接数据线的接口就相当于“API 接口” 。如图所示:
sdk和api的区别是什么 sdk对接与api对接区别

文章插图

sdk和api的区别是什么 sdk对接与api对接区别

文章插图
那 SDK 又是什么?
SDK 就是 Software Development Kit 的缩写,翻译过来——软件开发工具包 。这是一个覆盖面相当广泛的名词,可以这么说:辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做 SDK 。
SDK 被开发出来是为了减少程序员工作量的 。
比如——
有公司开发出某种软件的某一功能,把它封装成 SDK(比如数据分析 SDK 就是能够实现数据分析功能的 SDK),出售给其他公司做开发用,其他公司如果想要给软件开发出某种功能,但又不想从头开始搞开发,直接付钱省事 。
现在可以谈谈 API 和 SDK 的区别了 。
总的来说,两者没有值得比较的区别,因为是具有关联性的两种东西 。
你可以把 SDK 想象成一个虚拟的程序包,在这个程序包中有一份做好的软件功能,这份程序包几乎是全封闭的,只有一个小小接口可以联通外界,这个接口就是 API 。
比如——
我们现在要在企业 ERP 系统中增加某个功能(比如自动备份、数据分析、云存储等),但又不想耗费大量时间、也没那么多研发亲自去做这个功能 。这时我们可以选择使用这个“SDK”软件包,把 ERP 系统连接上 API 接口,就可以使用 SDK 软件包里的功能 。
最后,贴近生活讲讲两者的关系:
有一杯密封饮料,它的名字叫做“SDK” 。
饮料上插着吸管,吸管的名字叫“API” 。
把你叫做“XX 系统” 。
如果你想喝到 SDK 里的饮料(让系统拥有 SDK 中的功能),你必须通过 API 这根吸管来实现(通过 API 连接你的系统和 SDK 工具包),否则你就喝不到饮料 。
所以:
SDK=放着你想要的软件功能的软件包
API=SDK 上唯一的接口
不知道你这次真的懂了没?