浅谈 Sdk 与 Api,你是喜欢 SDK 还是 API?

2017-11-16 10:00:51 +08:00
 scarqin

之前一直没搞懂 sdk 和 api 之间的关系,官方的解释也是似懂非懂。

在百度百科中,sdk 定义为软件开发工具包(外语首字母缩写:SDK、外语全称:Software Development Kit )一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。软件开发工具包括广义上指辅助开发某一类软件的相关文档、范例和工具的集合。

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

好吧,看到这里我还是一头雾水,这些话语太官方,简直不给新手留一条活路。后面参照了一些文章后才真正理解 sdk 和 api 的意思。

类比来说,api 可以比作房门钥匙。在一个房子里,每间房间有其不同的用途与资源。而当要获取到相应房间的资源时,我们需要先用钥匙打开房门。譬如我们要从书房里拿书、要去卧室拿枕头,我们都需要先找到相应房间钥匙,继而进入房间拿书、拿枕头。调用 api 的过程,就是用钥匙开门的过程。

而 sdk 则是把这些钥匙串在一块儿,将 api 集成在一块儿。拥有 sdk,你便可以在该房子里畅通无阻,想要获得哪个房间里的资源,用手中的钥匙打开房门,进去拿取即可。

Api 又分为 open api 和私有 api。Open api 顾名思义,即是向所有人公开的接口,允许任何人调用它并获取到它背后的数据。它就好比于图书馆,你只需要进行相应的身份认证,就可以进入里面获取到相应的图书及资源,而身份认证便是你获取资源的钥匙。

现在很多公司都开放自己的 open api,并为了用户调用方便,他们大多采用 sdk 文档方式打包。用户在调用时只需要下载该 sdk 文档,根据相应规范进行调用即可。这样就省去了重写函数去封装 http、https 等请求的工作,节省更多时间去做更有价值的事情。

后来经前辈推荐,说让是试试 eolinker,发现 eolinker 企业版支持 sdk 文档一键化生成,特地用了一下,界面风格我还挺喜欢的。它集接口文档管理、测试、sdk 文档生成于一体,在这里,我可以编写管理我的接口文档,编写完后还可以进行测试,而另外更意外的是它还可以根据我所编写的接口信息自动化生成 sdk 文档,从开发到测试再到调用全都替我想好了,这大大节省了在开发过程中繁琐而又无意义的工作时间,让我可以做更多更有价值的工作,更加专注于产品本身。

不过这 sdk 文档生成有个局限,现在只支持生成 php 和 javascript 的 sdk 文档,像现在比较热门的 IOS 和 Andiod sdk 还不支持。要是能完善这两种语言的 sdk,估计会更受欢迎。

你更加喜欢 API 还是 SDK 呢?

9791 次点击
所在节点    程序员
10 条回复
Shura
2017-11-16 10:07:04 +08:00
Shura
2017-11-16 10:11:33 +08:00
还有,你搜索一下 Android sdk,你就会发现你错的离谱了。
Shura
2017-11-16 10:12:14 +08:00
最后,我回复一个广告回复的那么认真,也是醉了。
CoderXiaode
2017-11-16 10:23:53 +08:00
@Shura 就欣赏你这股程序员的认真劲
GeruzoniAnsasu
2017-11-16 10:29:39 +08:00
恕我直言 mdzz
oh
2017-11-16 13:35:03 +08:00
@Shura 帮你召唤一波管理员 @Livid,楼主这帐号全是广告
scarqin
2017-11-16 15:36:23 +08:00
@oh 一没网址,二没链接。。。过分了,老铁
scarqin
2017-11-16 15:37:10 +08:00
@Shura 感谢 我回去好好看看学习一下。。。。
scarqin
2017-11-16 15:37:39 +08:00
@GeruzoniAnsasu。。。
Charlesling
2017-11-17 09:44:27 +08:00
我选择 API

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/406821

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX