API,严格的来说是你的代码,和一个第三方的实体进行沟通的方式的集合。
比如说和MAC系统的沟通,需要调用mac提供的API
和.net框架进行沟通,需要调用.Net提供的API
和新浪微博进行沟通,需要滴啊用新浪微博提供的API
因此,API,比较准确的定义应该是,一个软件系统对其他软件系统提供的服务
什么是open API, 其实,open API也是API,并且没有一个准确的定义区分什么是API,什么是open API 什么不是open 的API
open API 一般指的这样一个系统,一开始是封闭的,比如最开始的Twitter,google,facebook 突然有一天他们开发了,他们公布了一组API,来获得他们内部的数据,执行操作,这个时候就称之为openAPI
那什么是SDK,
最开始的时候就是,API的集合,我们就称之为SDK,例如,mac 提供的API集合,就称之为mac SDK ,然后,随着时间的演化,聪明而又懒惰的程序员,又给SDK赋予新的意义。
通过Windows 的API 来开发mac程序的复杂而又反说的,十分不友好,所以就有像.Net这样的框架。他封装了底层Windows API, 然后改造成一组新的跟家医用的API给开发者们使用。像.Net这种,以一组Api作为输入,以另外一组Api作为输出得中间件,就是现在人们所说得SDK。
再举一个微博的例子,新浪微博提供了一组Http请求形式得Api。由于现如今构造Http请求也算是一件麻烦事,所以逐渐就有了,“新浪微博iOS SDK”。这个SDK封装新浪微博得Http接口,提供了一组Objective C或者Swift形式接口。