我的编程空间,编程开发者的网络收藏夹
学习永远不晚

API与SDK的区别有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

API与SDK的区别有哪些

本篇内容介绍了“API与SDK的区别有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

首先我们要明白的是 API 是和通信有关的,是用于应用(服务)与其他应用(服务)对话所定义的协议。在上述例子中,你可以简单理解为 API 是 OCR  应用和云端服务之间沟通的桥梁。

那么 API 到底是什么?

API 全称 Application Programming Interface,即「应用程序接口」。

一般是指一些预先定义的函数,目的是供应用程序与开发人员基于某软件或硬件得以访问一组程序的能力,而又无需访问源码,或理解内部工作机制的细节。

以 Java 为例,当你想要实现一个数组排序的功能时,你是会先手写一个排序算法,还是直接使用Arrays.sort()函数?我想你心里是有答案的。

抽象

其次,我们要理解,API 的另一个重要特点——抽象。

抽象指的又是什么?

还是以这个 OCR  应用为例,当我们在使用云端提供的文字识别能力时(比如百度文字识别),他的背后可能会有成千上万的代码,比如提供识别能力的机器学习的代码、提供 Web  能力的后端代码等等。

API与SDK的区别有哪些

但是你作为一个 APP 的开发者,你需要去看这些代码是怎么写的吗?难道不知道背后的源码就不能调用百度提供的文字识别能力了吗?当然不是。

通常服务商已经给你提供了文档,告诉你如何去调用相应服务,只要你按照他的要求来即可。

API与SDK的区别有哪些

因此,在你的 APP 和 OCR 服务之间,API 抽象出所有复杂的逻辑,简化了调用过程,这使得你只需要考虑获取所需的数据即可。

标准化

API 是标准化的,这意味着存在有关如何定义 API 的行业标准,比如 SOAP、REST、GraphQL 等。

我在《你的第一本 SpringBoot 书》[1]中写到什么是 RESTful API,有兴趣的小伙伴可以点击阅读,这是我正在写的一本  SpringBoot 入门教程,目前还没完工,欢迎读者们不要吝啬自己的建议 。

API 的构成要素

那么,API 通常由什么组成呢?

首先,我们要发送一些数据到云端,即所谓的「请求」。

从本地应用发请求到云端,我们需要分几步完成,以 REST 为例。

对于 REST API 调用请求,第一步是指定传输的方法,通常是和 HTTP 方法对应的,如下图所示:

API与SDK的区别有哪些

当你想要上传一张图片时,通常会使用 POST  方法,然后是传递一些参数,包括请求的内容(图像本身)。然后加上需要请求的地址,即可构成一个完整的请求。如下图所示:

API与SDK的区别有哪些

之后,服务器再以 JSON 等形式将数据返还给你,在你使用的云服务的文档中也会有所标注。

API与SDK的区别有哪些

SDK

说了这么多,你应该对 API 有所了解了,那么这时候问题就来了,作为开发人员,你如何在实际的项目中调用 API?

你要自己构造 HTTP 请求、拼接 URL、添加需要的参数、处理返回的 JSON 对象,麻烦吗?

麻烦。

API与SDK的区别有哪些

那有没有什么好的办法简化这些操作,使得我只需要给一张图片然后就给我返回结果的呢?

自然是有的,这就是接下来我们要说的 SDK 了。

SDK 全称 Software Development Kit,软件开发工具包。

一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。

通俗来讲就是第三方服务商提供的实现产品软件某项功能的工具包。例如 JDK 就是一种 SDK。

还是以上面的 OCR 应用为例,如果使用了某厂商的 SDK 服务,那么我们连 HTTP  请求的构建都不需要了,仅调用一个方法,可能的代码如下图所示。

OCRResult res = ocrClient.ocr("pic.jpg").getResult();

通过调用这行代码,SDK 会自动封装 API 请求,而且作为响应,你获得的结果也不一定是 JSON  对象,也有可能是代码,例如上述代码段里的OCRResult,这是因为 SDK 也已经将 JSON 对象反序列化成你需要的对象,比如一个 Java  Model。

SDK 相当于开发集成工具环境,API 就是数据接口。API 可以在 SDK 提供的“环境”里请求。同样的,这里的“环境”也是一个抽象的概念。如果不使用  SDK,也可以直接调用 API,只不过,这个环境就要由开发者自己实现了。

区别

其实从上面的内容,我们也已了解到,API 在更多场合下更像是 SDK 的一个子集,他们的区别如下:

  • API 通常是一个函数,有特定的功能;而 SDK 是一个很多功能函数的集合体,更像是一个工具包。•API 通常扮演数据接口的形象,SDK  相当于一个工具环境,通常是需要在 SDK 的环境下调用 APl。•SDK 相较于 API 封装层次更高。

“API与SDK的区别有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

API与SDK的区别有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

css与javascript的区别有哪些

这篇文章主要介绍css与javascript的区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!JavaScript可以做什么1.可以使网页具有交互性,例如响应用户点击,给用户提供更好的体验。2.可以处理表单,
2023-06-14

onTouch与onTouchEvent的区别有哪些

onTouch与onTouchEvent的区别有哪些?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.onTouch和onTouchEvent,都是在dispa
2023-05-31

git与tfs的区别有哪些

本篇内容介绍了“git与tfs的区别有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!git与tfs的区别:1、tfs是应用程序生命周期管
2023-06-26

svn与cvs的区别有哪些

这篇文章主要介绍“svn与cvs的区别有哪些”,在日常操作中,相信很多人在svn与cvs的区别有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”svn与cvs的区别有哪些”的疑惑有所帮助!接下来,请跟着小编
2023-07-02

Hashtable与HashMap的区别有哪些

今天就跟大家聊聊有关Hashtable与HashMap的区别有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。HashMap和Hashtable的详细比较前言:可以直接根据hash
2023-05-31

uniapp与HTML的区别有哪些

这篇“uniapp与HTML的区别有哪些”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“uniapp与HTML的区别有哪些”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来
2023-06-06

uniapp与vue的区别有哪些

uniapp与vue的区别有哪些?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。vue是什么软件Vue是一套用于构建用户界面的渐进式JavaScript框架,Vue与其它大型框架
2023-06-06

jsp与css的区别有哪些

这篇文章主要介绍了jsp与css的区别有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。区别:1、JSP是一种动态网页开发技术,使用Java编程语言;而CSS是一种用来表现
2023-06-14

编程热搜

目录