讲个小故事:

研发人员A开发了软件A,研发人员B正在研发软件B。
有一天,研发人员B想要调用软件A的部分功能来用,但是他又不想从头看一遍软件A的源码和功能实现过程,怎么办呢?
研发人员A想了一个好主意:我把软件A里你需要的功能打包好,写成一个函数。你按照我说的流程,把这个函数放在软件B里,就能直接用我的功能了!
其中,API就是研发人员A说的那个函数。

这就是API的诞生。

日常生活中,我们有很多类似API的场景,比如:

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

那SDK又是什么?

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

SDK被开发出来是为了减少程序员工作量的。

比如——

有公司开发出某种软件的某一功能,把它封装成SDK,出售给其他公司做开发用,其他公司如果想要给软件开发出某种功能,但又不想从头开始搞开发,直接付钱省事。

就是说,你现在假设正在开发一个手机照相机的项目,现在你的甲方说需要照相机有美颜功能,但是实际上时间已经不够你重新编写矫正算法之类的基础功能了,这时你就可以直接使用一个美颜的sdk,付钱就行了。

现在可以谈谈API和SDK的区别了。

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

比如——

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

  • 举个实例辅助理解:

【中铁大桥科研院】有一个自研的信息平台,用于管理业务数据。

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

由于系统的开发周期长、成本高,桥科院将目光聚焦到现成的功能软件上。

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

API将信息平台与简道云相连

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

最后,贴近生活讲讲两者的关系:

有一杯密封饮料,它的名字叫做“SDK”。

饮料上插着吸管,吸管的名字叫“API”。

把你叫做“XX系统”。

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

所以:

SDK=放着你想要的软件功能的软件包

API=SDK上唯一的接口

什么是API、什么是SDK、他们有什么区别?相关推荐

  1. php版本kms,通过 AWS KMS API 和 AWS SDK for PHP 版本 3 使用密钥 - 适用于 PHP 的 AWS 开发工具包...

    AWS 文档中描述的 AWS 服务或功能可能因区域而异.要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门. 本文属于机器翻译版本.若本译文内容与英语原文存在差异,则一律以英文原文为准. 通过 ...

  2. 美颜API是什么意思?美颜API和美颜SDK有什么区别?

    就目前形式来说,"颜值经济"已经占据了短视频和直播市场的重要组成,当然在其它行业也有一定的话语权,特别是对于泛娱乐平台来说,颜值的高低往往代表着"生产力"的高低 ...

  3. php ses 发送邮件,使用 Amazon SES API 和 AWS SDK for PHP 版本 3 验证电子邮件身份 - 适用于 PHP 的 AWS 开发工具包...

    AWS 文档中描述的 AWS 服务或功能可能因区域而异.要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门. 本文属于机器翻译版本.若本译文内容与英语原文存在差异,则一律以英文原文为准. 使用 ...

  4. php版本kms,通过 AWS KMS API 和 AWS SDK for PHP 版本 3 使用别名 - 适用于 PHP 的 AWS 开发工具包...

    本文属于机器翻译版本.若本译文内容与英语原文存在差异,则一律以英文原文为准. 通过 AWS KMS API 和 AWS SDK for PHP 版本 3 使用别名 别名是 AWS Key Manage ...

  5. 用python依赖地图公司的API接口和SDK实现道路数据可视化分析

    今天我们用python来获取道路数据,并根据数据进行简化和可视化分析 当今社会每个人都离不开导航 除了开车用导航外,其实走路.骑车.公交都可以导航 选址和找餐厅.酒店也需要 如果一个城市能够标注所以公 ...

  6. python 收发微信之一:利用 WxPusher 的 web api 及 python SDK 两种方式给自己发微信

    目 录 摘要 实操 代码分析 需求来源与路径选择 参考 摘要 本文给出利用 WxPusher 提供的 web api 与 python SDK 两种方式,实现微信发送的 python 代码样例,并简单 ...

  7. Golang淘宝开放平台Api请求基础SDK

    GO语言.淘宝Api.淘宝开放平台Api请求基础SDK dkeng/opentaobao-go​github.com 淘宝API sign算法dkeng/opentaobao-go淘宝API sign ...

  8. 【Android P】非公开API(非 SDK 接口)相关知识总结

    关于P-OSV中非公开API(非 SDK 接口)的限制及搜索方式,做了以下整理. 1.背景 Android 9(API 级别 28)引入了针对非 SDK 接口的使用限制,无论是直接使用还是通过反射或 ...

  9. 利用python+百度智能云为人物头像动漫化(附API代码及SDK代码)

    文章目录 前言 1.2.打开第一个搜索结果 1.3.点击立即使用 1.4.创建应用 1.5.获取APPID等参数 二.API与SDK的使用 1.API代码 2.SDK使用 2.1.首先下载python ...

  10. 关于SDK和JDK的区别

    目录 一. SDK 二.SDK和API 三.JDK 一. SDK SDK就是指可以为第三方开发者提供特定的软件包.软件框架.硬件平台.操作系统等创建应用软件开发工具的集合,并且SDK还能简单的为某个程 ...

最新文章

  1. 空间里相片批量导入u盘_国民好物:aigo手机U盘 开启存储新时代
  2. 公安网三合一EWSD交换机数据制作
  3. javaScript的使用(5)DOM事件
  4. Sublime Text提示Unable to download XXX. Please view the console for more details安装插件失败解决(转)
  5. Predator:比微软Kinect更强的视频追踪算法-来自捷克博士论文
  6. JS面向对象编程实现
  7. Mysql数据类型TINYINT(1)与BOOLEAN踩坑记
  8. 《长安十二时辰》利用大数据破案?
  9. C#之DateTime
  10. 中国经济真相:跑了 1135 家制造企业,我终于明白什么叫自己玩死自己(转)...
  11. 全国省市区信息,mysql数据库记录
  12. 爬取电影天堂的最新电影
  13. 爆款预订,2022 最值得关注的后台框架——Fantastic-admin
  14. 基于Matlab的Poisson分布,基于matlab的泊松分布的仿真.doc
  15. 电驴连接服务器显示无响应,请问使用电驴时,服务器无响应,怎么解决?
  16. 通配符(一般用来查找文件)
  17. 2021杭电多校第3场_HDU6975_Forgiving Matching
  18. Qt5工程文件详解及使用方法
  19. 算术编码、译码以及matlab实现
  20. P2742 【模板】二维凸包 / [USACO5.1]圈奶牛Fencing the Cows

热门文章

  1. 批量改变图片尺寸大小的方法!一分钟搞定!
  2. 肤色冷暖色测试软件_认识你自己|肤色冷暖测试
  3. 小数除法竖式计算过程
  4. Doom3 引擎渲染管线分析
  5. android远程输入法,远程输入法
  6. c语言图形界面切换,「分享」C语言如何编写图形界面
  7. 【双足轮机器人】Ascento技术详解--(1)摘要和引言(2)系统描述【翻译】
  8. Moneybookers支付方式开发
  9. ES学习笔记八-聚合搜索
  10. SQLite主键自动增长