全网最详解读两者区别 api对接和sdk对接区别


全网最详解读两者区别 api对接和sdk对接区别

文章插图
前言什么是 API?
什么是 SDK?
两者之间有何关系?
欢迎来到本次的每周一问系列 。
既然点进来了,相信你或多或少都听说过这两个名词了,因此,在为你解答之前,让我们先从一个例子出发 。假如你想开发一个 OCR 应用(通俗的说就是文字识别应用),他的功能是识别用户上传的一张图片,然后将图片中的文字识别出来返回给用户 。如下图所示:
通常,OCR 应用的后端服务都会部署在云上,那么我们应该如何在移动应用程序与基于云的服务之间进行通信呢?
这就是 API 和 SDK 的用武之地了 。
APIAPI 的特点通信首先我们要明白的是 API 是和通信有关的,是用于应用(服务)与其他应用(服务)对话所定义的协议 。在上述例子中,你可以简单理解为 API 是 OCR 应用和云端服务之间沟通的桥梁 。
那么 API 到底是什么?
API 全称 Application Programming Interface,即「应用程序接口」 。
一般是指一些预先定义的函数,目的是供应用程序与开发人员基于某软件或硬件得以访问一组程序的能力,而又无需访问源码,或理解内部工作机制的细节 。
以 Java 为例,当你想要实现一个数组排序的功能时,你是会先手写一个排序算法,还是直接使用Arrays.sort()函数?我想你心里是有答案的 。
抽象其次,我们要理解,API 的另一个重要特点——抽象 。
抽象指的又是什么?
还是以这个 OCR 应用为例,当我们在使用云端提供的文字识别能力时(比如百度文字识别),他的背后可能会有成千上万的代码,比如提供识别能力的机器学习的代码、提供 Web 能力的后端代码等等 。
但是你作为一个 APP 的开发者,你需要去看这些代码是怎么写的吗?难道不知道背后的源码就不能调用百度提供的文字识别能力了吗?当然不是 。
通常服务商已经给你提供了文档,告诉你如何去调用相应服务,只要你按照他的要求来即可 。
因此,在你的 APP 和 OCR 服务之间,API 抽象出所有复杂的逻辑,简化了调用过程,这使得你只需要考虑获取所需的数据即可 。
标准化API 是标准化的,这意味着存在有关如何定义 API 的行业标准,比如 SOAP、REST、GraphQL 等 。
我在《你的第一本 SpringBoot 书》[1]中写到什么是 RESTful API,有兴趣的小伙伴可以点击阅读,这是我正在写的一本 SpringBoot 入门教程,目前还没完工,欢迎读者们不要吝啬自己的建议。
API 的构成要素那么,API 通常由什么组成呢?
首先,我们要发送一些数据到云端,即所谓的「请求」 。
从本地应用发请求到云端,我们需要分几步完成,以 REST 为例 。
对于 REST API 调用请求,第一步是指定传输的方法,通常是和 HTTP 方法对应的,如下图所示:
当你想要上传一张图片时,通常会使用 POST 方法,然后是传递一些参数,包括请求的内容(图像本身) 。然后加上需要请求的地址,即可构成一个完整的请求 。如下图所示:
之后,服务器再以 JSON 等形式将数据返还给你,在你使用的云服务的文档中也会有所标注 。
SDK说了这么多,你应该对 API 有所了解了,那么这时候问题就来了,作为开发人员,你如何在实际的项目中调用 API?
你要自己构造 HTTP 请求、拼接 URL、添加需要的参数、处理返回的 JSON 对象,麻烦吗?
麻烦 。
那有没有什么好的办法简化这些操作,使得我只需要给一张图片然后就给我返回结果的呢?


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: