SDK 和 API 的区别是什么?
凯发国际首页入口

  有一天,研发人员B想要调用软件A的部分功能来用,但是他又不想从头看一遍软件A的源码和功能实现过程,怎么办呢?

  研发人员A想了一个好主意:我把软件A里你需要的功能打包好,写成一个函数。你按照我说的流程,把这个函数放在软件B里,就能直接用我的功能了!

  电脑需要调用手机里面的信息,这时候你会拿一根数据线将电脑手机连接起来,电脑和手机上连接数据线的接口就相当于“API接口”。如图所示:

  SDK 就是 Software Development Kit 的缩写,翻译过来——软件开发工具包。这是一个覆盖面相当广泛的名词,可以这么说:辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做SDK。

  有公司开发出某种软件的某一功能,把它封装成 SDK(比如数据分析 SDK 就是能够实现数据分析功能的SDK),出售给其他公司做开发用,其他公司如果想要给软件开发出某种功能,但又不想从头开始搞开发,直接付钱省事。

  你可以把SDK想象成一个虚拟的程序包,在这个程序包中有一份做好的软件功能,这份程序包几乎是全封闭的,只有一个小小接口可以联通外界,这个接口就是API。

  我们现在要在企业 ERP 系统中增加某个功能(比如自动备份、数据分析、云存储等),但又不想耗费大量时间、也没那么多研发亲自去做这个功能。这时我们可以选择使用这个“SDK”软件包,把 ERP 系统连接上 API 接口,就可以使用 SDK 软件包里的功能。

  但他们曾面临一个问题——尽管有信息平台,却因为系统的独立性,数据的上传和备份,需要依靠人工在 excel 里来回操作,效率很低。

  后来通过 API 将简道云直接插入公司数据库,数据可自动上传至信息平台上并统一展示;再通过 webhook 把数据推送到服务器,实现自动备份。

  在这一过程中,简道云扮演的角色就是 SDK,而简道云配备 API 接口,可以对接外部系统,让桥科院不用开发直接实现了数据自动上传、备份的功能。

  如果你想喝到 SDK 里的饮料(让系统拥有 SDK 中的功能),你必须通过 API 这根吸管来实现(通过 API 连接你的系统和 SDK 工具包),否则你就喝不到饮料。