说到API,往往是和SDK放在一起的。

什么叫API,看一下餐厅里怎么点餐的就行了。

到了饭店,喊一场服务员,点餐。

服务员拿出来菜单给你看,你点什么,她在小本本上记什么。

点好了之后,再把菜单送到后厨去。

这里服务员就是提供服务的(不然也不叫服务员),提供什么服务呢?

点餐服务。

点餐服务需要什么呢?

谈一个服务,通常就是要谈输入是什么,输出又是什么。

从眼下这个例子来看,输入就是一道道菜品的名字(或者是ID,不知道你们见过菜品上面有编号,服务员只记编号的?),输出的结果就是端过来的一道道菜。

有了输入和输出,服务员就可以提供了点餐的功能,这就是API,顾客就是调用者,服务员就是服务的提供者。

你可以在这里把服务员替换成猫猫,假设女王大人猫猫来给你提供服务,只要输出是菜品的名字,输出是菜品,这个API就是能够正常使用的。

而且,所有的顾客都可以用这种方式来点菜的~~~

再想想,是不是有的服务员手里拿的是点餐机?想想一个漂亮的小姑娘,拿着一个和手机大小差不多的点餐机,这个点餐机,就是需要和后厨系统有交互,这种交互,就需要一种约束,来声明点菜功能的输入是什么,输出是什么。比如说,如果用户点了一道已经估清的菜,是不是服务员要告诉顾客一下?

API通常是以Http的形式提供,它隐藏的含义就是,只要你符合我定义的标准,你就可以来使用我。

比如说,服务员是中国姑娘,顾客是美国人,没关系,只要美国人能说中国话,这套API就可以使用。如果美国人只会说英语,怎么办?让和美国人一起来吃饭的中国朋友翻译成中文,就可以了~~

那么什么是SDK呢?

当美国人不会说中文的时候,饭店里的大堂经理来了,他来给美国佬当翻译。这就是SDK,SDK一般都是和语言相关,是官方提供的各种不同语言的实现版本。

同样的,我们再把思维模式扩大一点。

除了Http这种API,内部系统集成的组件,是否也是有API?

你会发现,确实是这样的,比如说,JDK本身提供的各种API,在这里,API和SDK的概念没有那么清楚了,但是API本身的含义就是,当服务的提供方对外提供服务的时候,应该声明输入和输出和功能的明确含义。

而一组组明确声明了的输入,输出和功能描述,就是服务方提供的各种API。

比如说数组对外暴露的方法,链表对外暴露的方法等等。

那么,API和方法之间有没有明显的区别呢?暴露出去的,可被公开使用的方法,统称为API~~~

以上解释不够严谨,但是对于初学者来说,理解起来应该够了。

如果你在理解API的时候有困难,大概问题并不是在API上,而是你有没有理解清楚什么叫做封装,什么叫做服务?

作者:远望的云 链接:https://www.jianshu.com/p/29569a3a0f41 來源:简书

关于API和SDK的理解相关推荐

  1. 形象理解Api和SDK

    刚开始学Java的时候不理解API和SDK的区别,感觉两个东西是一样的.在看了网上一些资料以后,对这两者的概念有了一定的理解,在这里记录一下(只针对Java): API: 概念:API(Applica ...

  2. 一文带你了解什么是API和SDK

    随着软件规模的日益庞大,开发者常常需要把复杂的系统划分成小的组成部分,这个时候,编程接口的设计就显得尤为重要.良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度 ...

  3. 软件开发:API和SDK的区别与联系

    目录 一.API 1.发展由来 2.概念 3.应用案例 4.分类 二.SDK 1.概念 三.API和SDK的区别与联系 一.API 1.发展由来 随着软件规模的日益庞大,常常需要把复杂的系统划分成小的 ...

  4. API、SDK是什么

    一.什么是API API(接口)是什么 - 知乎 (zhihu.com) API是什么: 一篇讲透API - 卡拉云 (kalacloud.com) (1 封私信 / 17 条消息) SDK 和 AP ...

  5. 【涂鸦物联网足迹】API及SDK介绍

    前序系列文章>>>[涂鸦物联网足迹]物联网主流通信方式 我们系列文章,都会围绕如何完成一款智能"隔空接吻机"的开发.希望能帮到各异地恋or异国恋的情侣们! 本文我 ...

  6. api和sdk有什么区别

    对于互联网行业从业者来说,总会碰到两个词--SDK 和 API,它们可是现在特别流行且好用的工具,能够帮助我们把经常需要用到的复杂的系统划分成小的组成部分,进行封装模块化,提高系统的维护性和扩展性.由 ...

  7. 关于API和SDK两者的区别

    关于API和SDK两者的区别 API(Application Programming Interface,应用程序编程接口): 是一些预先定义的函数,目的是作为"介面"沟通两个不同 ...

  8. 我对delphi调用第三方SDK的理解

    我对delphi调用第三方SDK的理解 去年就买了OrangeUI[FMX三方SDK服务-VIP]工具,前天听了王老师直播后,昨天第1次尝试着使用它,照着老师的步骤全部重新做了一遍,感觉很好,把实现过 ...

  9. 云之讯融合通讯开放平台_提供融合语音,短信,VoIP,视频和IM等通讯API及SDK。...

    云之讯融合通讯开放平台_提供融合语音,短信,VoIP,视频和IM等通讯API及SDK. 云之讯融合通讯开放平台_提供融合语音,短信,VoIP,视频和IM等通讯API及SDK. undefined 全明 ...

最新文章

  1. gpg的一些常用操作
  2. SNMP在企业网中应用
  3. linux存储--页面置换算法(十一)
  4. vue2.0 -- watch监听
  5. CSS3的transform:将元素旋转,缩放,移动,倾斜
  6. THUPCCTSAPIO摸鱼被$\Huge{\color{black}{\mathbf{z}}\color{red}{\mathbf{zh}}}$爆踩记
  7. JQ学习(三)-ajax
  8. 对CAML查询语句的几点小记
  9. matconvnet在ubuntu15.10下配置和使用方法
  10. JEECG 官方微博账号
  11. Node.js开发框架Express4.x
  12. 336 Palindrome Pairs 回文对
  13. linux版本怎么安装qq游戏,QQ for Linux
  14. Linux:struct dirent
  15. 迭代器怎么就节省内存了?
  16. 记录一次线上Mysql数据库迁移方案制定与实施
  17. 一个机器人教小八_哈工程学生研发的水下机器人“敖小八”亮相浙江卫视
  18. python(七)爬虫框架
  19. 计算机体系层次图中 虚拟机属于,第1章 计算机系统概述.ppt
  20. 2021年终总结--一个即将毕业的大学生

热门文章

  1. JavaScript算法(实例三)数组排序--冒泡排序 / sort() / reverse() / 比较函数
  2. URI、URL和URN的关系
  3. 交互系统的构建之(二)Linux下鼠标和键盘的模拟控制
  4. OpenCV3学习(11.2)LK光流法原理及opencv实现
  5. Angular Extends
  6. 7-31 字符串循环左移 (20 分)
  7. python对文件的相关操作
  8. toCharArray()和 charAt()的用法
  9. linux哪个系统能编译固件,rk3328编译Linux固件
  10. java捕获子程序异常,防止异常与捕获Java中的异常