SDK 和 API 的区别是什么?

关注者
1,988
被浏览
8,840,085

88 个回答

1、API是什么

API全称 Application Programming Interface,应用程序接口

可以通过我之前的回答了解一下如何通俗解释API

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

通俗来讲API就是可以轻松实现和其他软件的交互。

举个栗子:

胖虎是一个程序猿,老板要求他写一个火车票查询的软件,胖虎想提高工作效率,于是在写火车票查询的代码中,引入了BinSTD平台的火车票查询的接口,这样子就可以轻松实现功能。

2、SDK是什么

SDK全称software development kit,软件开发工具包

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

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

再来举个栗子:

老板让胖虎来完成BinSTD网站上的业务功能,胖虎觉得开发周期长,不利于公司产品上线,偶然机会了解到了华为云平台上的相关功能,于是在基于华为云SDK下,通过编码调用华为云API,就可以访问华为云的资源和数据。

3、API和SDK的区别

  • API是一个函数,有其特定的功能;而SDK是一个很多功能函数的集合体,一个工具包。
  • API是数据接口,SDK相当于开发集成工具环境,要在SDK的环境下来调用API。
  • API接口对接过程中需要的环境需要自己提供,SDK不仅提供开发环境,还提供很多API。
  • 简单功能调用,API调用方便快捷;复杂功能调用,SDK功能齐全。

相关链接:

免费实用好用的API接口有哪些?

有哪些好玩的免费的API接口?

网上的天气 API 哪一个更加可靠?

我是 BinSTD,国内领先的 Token 化数据 API 交易平台

不知道你以前的知识背景,我只能按照最白话的方式来解释了

1、API,你可以理解为函数,f(x)知道吧,一个API就是一个f(x)

软件是现实世界的映射,比如现实中的一字螺丝刀、十字螺丝刀、活扳手等等,都可以算是一个API

现实中我用一字螺丝刀拧螺丝,等同于软件里的:我调用某个API(螺丝刀)实现某个功能(拧螺丝)

2、SDK,工具包

现实中的工具包

一个SDK中包含了很多个API,是不是很形象?

3、区别

  • 一个API做出来,可能是自己用的、也可能是给别人用的;但SDK做出来一般都是给别人用的,当然自己也可以用,只不过从目的上来说,SDK是做出来给别人用的
  • API即可以是本地的、也可以是网络的,但SDK一般都是会给个实体文件的。典型的比如JDK,你需要去Oracle官网上下载一个JDK安装到自己电脑上,然后你才用这个JDK,但API未必是这样,你可以通过网络直接去调用那个API,而不一定非要把承载这个API的实体文件搞到自己电脑上来
  • 从API角度,一个API做出来后,可以以SDK的形式对外共享,也可以不用SDK的形式对外共享,也就是说,对于API来说SDK不是必须的
  • 从SDK角度,一个SDK里必然包含若干个API,否则没有API你这个工具包要让别人怎么用?但SDK往往又不止这些暴露出去的API,肯定还有一些内部的机制、是不对外共享。