浅谈API和SDK的区别

首先了解一下他们的定义

API:application program interface 应用程序接口

通常表示一些事先定义好的函数,为了向外部提供一组功能的实现,实现和其他软件的交互

SDK:software development kit 软件开发工具包

类似于第三方服务商提供的实现产品某一部分功能的工具包

 

举个栗子:

SDK:

比如支付宝,很多App、网站等消费者都需要使用支付这个功能/服务,但是又不想自己去开发这个东西,那么支付宝就说“你们告诉我,你们需要使用的环境是什么样的”;有人说“我是App,Android写的”,有人说自己是iOS,有人说“我是Web的”,还有人说我是Windows的,那么支付宝说:“没问题,Android的我有Android的SDK,你把这个SDK嵌入到你的代码里,我有一些Java的接口,Java接口里面有个函数叫pay,然后你传一些值给pay就可以了;如果你是iOS的,我还有另外一个叫iOS支付宝的SDK,你把它嵌入到你的iOS的App里面,然后里面有个Objective-C写的函数,也叫pay,同样传参数进来就可以了;

SDK只向外暴露一个API接口,无法看到里面的源码。不知道代码的实现细节

API:

举个例子,支付宝除了SDK,也会提供像API的网络接口。如果你不想集成SDK的时候,也可以自己花时间去实现支付的逻辑,API提供方可以告诉你,需要先调用这个API,得到某个信息之后,再调用另外一个API,拿到另外一个信息,再调用下一个API,拿到下一个信息…这中间可能有好几个步骤,最后完成pay。

 

SDK对指定功能的实现是完全隐藏的,只需要调用接口函数,传进去特定的值即可实现提供商制定好的功能

API可能会包括许多个接口函数,这些函数需要按照提供的规则进行顺序调用,所以在调用不同函数的期间可以插入自己定制化的代码

 

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

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

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

把你叫做“XX系统”。

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




posted @ 2022-05-12 16:15  派大没有星  阅读(324)  评论(0编辑  收藏  举报