快速了解SDK和API的区别
- SDK 是 Software Development Kit 的缩写,软件开发的工具包。辅助开发某一类软件的相关文档、范例和工具的集合都能叫做SDK。
- SDK被开发出来是为了减少程序员工作量的。如果有公司开发出了某种软件的某一功能,把它封装成SDK(比如数据分析SDK就是能够实现数据分析功能的SDK)。该软件可以出售给其他公司做开发用,这样其他公司如果不想从头开始搞开发,那就直接付钱省事。
- API是开发人员开发好一款软件之后,把功能进行打包,写成一个函数。当研发人员需要这个功能时,只需要调用这个API函数(接口),就可以直接使用功能,而无需知道实现原理。
总的来说,两者没有本质上的区别,而是具有关联性的两种概念。可以把SDK想象成一个虚拟的程序包,在这个程序包中有一份做好的软件功能,这份程序包几乎是全封闭的,只有一个小小API接口可以联通外界。当企业在开发中想增加某个功能时(如自动备份、数据分析、云存储等),SDK节省研发成本。当然,企业也可以自行封装自家的软件功能作为SDK,便于自家其他软件调用。
折射到日常生活
我们有很多类似API的场景,比如:
电脑需要调用手机里面的信息,这时候你会拿一根数据线将电脑手机连接起来,电脑和手机上连接数据线的接口就相当于“API接口”。如图所示:
举个实例辅助理解:
- 某研究院有一个自研的信息平台,用于管理业务数据。
- 但他们曾面临一个问题——尽管有信息平台,却因为系统的独立性,数据的上传和备份,需要依靠人工在excel里来回操作,效率很低。
- 由于系统的开发周期长、成本高,桥科院将目光聚焦到现成的功能软件上。
- 后来通过API将简道云直接插入公司数据库,数据可自动上传至信息平台上并统一展示;再通过webhook把数据推送到服务器,实现自动备份。
- API将信息平台与简道云相连
- 在这一过程中,简道云扮演的角色就是SDK,而简道云配备API接口,可以对接外部系统,让桥科院不用开发直接实现了数据自动上传、备份的功能。