对于互联网行业从业者来说,总会碰到两个词——SDK 和 API,它们可是现在特别流行且好用的工具,能够帮助我们把经常需要用到的复杂的系统划分成小的组成部分,进行封装模块化,提高系统的维护性和扩展性。由此编程接口的设计十分重要,良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性和降低各单元间的耦合程度。
API
- 概念:应用程序编程接口
(API,全称:Application Programming Interface)
一般是指一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。 - 理解:其实就是别人已经写好的可以实现特定功能的函数,而你只需要根据他提供好的接口,也就是调用他的方法,传入他规定的参数,然后这个函数就会帮你实现这些功能。
SDK
- 概念:软件开发工具包
(SDK,全称:Software Development Kit)
一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合,即可用于开发面向特定平台的软件应用程序的工具包,相当于很多API和其他文件的集合体。 - 理解:如果你想组装一个模型车,在构建这个模型时,需要一整套物品去组装,那么SDK相当于组装它们所需的工具,包括装配说明等等。
SDK和API的区别
-
API是一个具体的函数,一个确定的功能,已经明确了它的作用(比如做加法)。
-
SDK就像是很多方法的集合体,是一个工具包。
比如你要做加法,你就调用计算机SDK的加法API,要做减法就调用减法API,无论你想完成什么计算,SDK里总有能实现的方法。 -
SDK除了他提供的完善的接口,他还会给你提供相关的开发环境,而API需要的环境你得自己提供(比如传参)
-
SDK相当于开发集成工具环境,API就是数据接口。在SDK环境下调用API数据。(而这个SDK你可以自己配置或者下载第三方提供的)
-
API
前端调用后端数据的一个通道,就是我们俗说的接口,通过这个通道,可以访问到后端的数据,但是又无需调用源代码。
对于api的使用,只要找到需要的API接口,根据接口文档和自己的APP进行对接就可以了。 -
SDK
工程师为辅助开发某类软件的相关文档、范例和工具的集合,使用SDK可以提高开发效率,更简单的接入某个功能。
举例说明:一个产品想实现某个功能,可以找到相关的SDK,工程师直接接入SDK,就不用再重新开发了。
如何选择API和SDK对接
API和SDK这两种产品对接方式,选择哪种比较好呢?API和SDK对接,适合最重要。没有哪种最好,只有最适合。API和SDK最终实现的功能都是一样的,至于采用哪一种,需要结合对接平台的需求(保密程度,特殊需求、开发成本等等)。
- 选择API
优势:API开发成本低,对接比较简单,可以快速验证商业模式和用户体验。
劣势:API会经过对接平台,厂商可以获取对接平台相关数据信息。
- 选择SDK
优势:SDK对接后的功能比较稳定,响应速度快,而且对接平台相关数据不会被获取。
劣势:需要开发的环节较多,开发工作量大,对接周期略长。
所以,大家在实际开发过程中,如果只是简单功能调用,还是使用API更快速便捷一些;如果是繁琐复杂的功能,多数情况下还是使用SDK更稳妥一些。
API文档
API接口一般分为接口描述、接口地址、请求方法、请求参数、相应内容、错误代码、实例几个部分。
- 接口描述
简单描述接口的逻辑和作用 - 接口地址
接口的正式url和接口测试的url,需求方通过调用接口url,获取响应内容 - 请求方法
一般来说,接口最常见的请求方法为GET和POST两种方式,即读接口和写接口。通过这两种方式,实现对数据的增删查改。增删改本质都是写的动作。 - 请求参数
即需要请求的字段名的名称和规则:都是哪些字段,字段的类型是什么,是否必填字段等等 - 响应内容
接口返回的字段名称和规则。
注意:大部分开发往往不会把所有的字段罗列,只会列出比较重要的字段。当你发现,接口文档中没有你需求的字段,别着急找开发,可以看下实例中,有没有需求的字段。 - 错误代码
对接口的错误用代码进行归类,以便能快速找到错误原因,解决问题。 - 实例
实际调用时的响应的内容。