SDK和API都是类似于公共服务的东西,都代表的是一种封装,只是封装的形式不一样:
- API是一个函数,有其特定的功能;而SDK是一个很多功能函数的集合体,一个工具包。
- API是数据接口,SDK相当于开发集成工具环境,要在SDK的环境下来调用API。
- API接口对接过程中需要的环境需要自己提供,SDK不仅提供开发环境,还提供很多API。
- 简单功能调用,API调用方便快捷;复杂功能调用,SDK功能齐全。
-
SDK的封装是在客户端层面的一个library(也叫做“包”或者“库”),这个library提供一些客户端API接口,类似于已经写好了的函数,你只需要调用它就好了。SDK暴露出来的接口都是和语言相关的,如果SDK是用Java写的,就需要用Java去调用那个函数;如果是SDK是用Objective-C写的,就需要用Objective-C去调用那个函数。
-
API是封装在服务端层面的library,从网络服务的层面暴露出一些API接口,提供给使用这些服务的人去调用。因为封装在服务的层面,传输数据用的是网络协议(常用HTTP/TCP),就不需要管他是用什么语言实现的;