zoukankan      html  css  js  c++  java
  • sdk 和 Open API 有什么区别

    本文转载自:sdk和open api有什么区别? - aaaron7的回答 - 知乎 https://www.zhihu.com/question/20225153/answer/82373708

     

    为了易懂,我尽量避免用接口这个词,老实说这个词的定义比这两个玩意儿还要乱。

    我认为,API,是你,严格的来说是你的代码,和一个第三方的实体进行沟通的方式的 集合。

     

    比如你和Windows系统沟通,需要调用Windows提供的API(CreateWindowEx, bitblt,等等)。(以C语言函数的形式) 你和.Net框架进行沟通,需要调用.Net提供的Api。(以C#,VB函数/类的形式) 你和新浪微博进行沟通,需要调用新浪微博提供的Api。(以Http请求的形式)

    所以Api,比较准确的定义应该是,一个软件系统对其他软件系统提供的服务。

     

    这个时候,这样的api, 我们就称之为open api。

     

    那什么是SDK呢? 最开始的定义就是, api的集合,我们就称之为SDK。 还是拿之前的windows的例子来说,windows提供的所有Api的集合,就称之为 Windows SDK。

    然后,随着时间的演化,聪明而又懒惰的程序员们,又给SDK赋予了新的意义。

    通过Windows的Api,来开发windows程序是复杂且繁琐的。十分不友好,所以就有了像.Net这样的框架。他封装了底层的Windows Api,然后改造成一组新的,更加易于使用的Api给开发者们使用。

    像.Net这种,以一组Api作为输入,以另外一组Api作为输出的中间件,就是现在人们所说的SDK。如下图:

    imgimg

     

     

    再举一个微博的例子,新浪微博提供了一组Http请求形式的Api。由于现如今构造Http请求也算是一件麻烦事,所以逐渐就有了,“新浪微博iOS SDK”。这个SDK封装新浪微博的Http接口,提供了一组Objective C或者Swift形式接口。

     

    imgimg

     

     

    那现在问题来了,什么是 “框架” .NET框架,Cocoa框架,WPF框架……

    简单的说……很厉害的SDK,就可以称自己为……框架。

  • 相关阅读:
    《集体智慧编程》第7章代码 Python3执行出错
    pymysql.err.IntegrityError: (1062, "Duplicate entry 'roxml-ROXML' for key 'PRIMARY'")
    Linux下MariaDB 安装及root密码设置(修改)
    Excel VBA入门(九)操作工作薄
    Excel VBA入门(八)单元格边框
    Excel VBA入门(七)注释、宏按钮及错误处理
    Excel VBA入门(六)过程和函数
    Excel VBA入门(五)Excel对象操作
    Excel VBA入门(四)流程控制2-循环控制
    Excel VBA入门(三) 流程控制1-条件选择
  • 原文地址:https://www.cnblogs.com/FengZeng666/p/15133770.html
Copyright © 2011-2022 走看看