指南

什么是 SDK?软件开发工具包简单解读

SDK(软件开发工具包)是一套现成的工具包,公司将其提供给开发者,使他们无需从零开始构建一切,就能使用其服务或平台。它通常包括针对特定编程语言的代码库、文档和示例,有时还包括测试工具等额外工具。当你的应用“使用 Stripe SDK”时,意味着你的代码调用的是 Stripe 预先构建好的函数,而不是手动编写每一个发给 Stripe API 的请求。

用 AI 构建应用时,为什么 SDK 很重要

当你请 AI 构建工具添加支付、AI 聊天、地图或邮件功能时,它通常会安装该服务商的 SDK,并编写几行代码来调用它。了解 SDK 是什么,能帮你:

  • 理解项目中新增了什么。 SDK 是一种依赖项,也就是你的应用现在依赖的外部代码。
  • 识别它需要的配置。 几乎每个 SDK 都需要 API 密钥,而且许多 SDK 分为“服务端”和“浏览器端”两个版本,对哪些密钥可以安全使用有不同的规定。
  • 提出准确的要求。 “在服务端使用 Stripe 官方 SDK”比“添加 Stripe”是更清晰的指令。
  • 读懂错误信息。 AI 构建的应用中,很多错误都源于 SDK 配置有误、版本过旧或使用位置不当。

一个日常类比

想象你要装一个置物架。

  • API 就像建筑的规则:哪些墙面可以打螺丝、能承受多大的重量、管线在哪里。你可以只依据这些规则动手,自己测量、钻孔。
  • SDK 则像同一家公司为这面墙配套提供的平板组装套件:预先切割好的零件、合适的螺丝、一个严丝合缝地适配这面墙的支架,以及一本说明书。

置物架放在哪里、上面放什么,仍由你决定。套件只是帮你省去切割木料和猜测螺丝尺寸的麻烦,也不太可能让你不小心钻穿水管。

SDK、API、库与框架的区别

这些术语彼此重叠,让很多人感到困惑:

术语是什么示例
API与某项服务通信的规则:它接受哪些请求、返回什么Stripe 的 REST API,地址为 api.stripe.com
SDK服务商提供的工具包,用于从特定语言使用其 API 或平台,附带文档和工具Stripe 官方的 Node.js 库
库(Library)任何可复用、添加到项目中的代码一个日期格式化软件包
框架(Framework)你的整个应用所构建的更大结构React、Next.js、Django

SDK 通常包含一个库,而该库通常调用一个 API。对于网络服务来说,“SDK”和“客户端库”常常可以互换使用。

有些 SDK 与网络服务无关。苹果和谷歌发布的 SDK 用于构建 iOS 和 Android 应用,其中包括编译器、模拟器和平台代码。原理相同:把为其平台开发所需的一切都放在同一个工具包里。

SDK 为你做了什么

下面以同一个任务为例——在支付服务商处创建一位客户——对比两种做法。

不使用 SDK 时,你的代码必须自己构建 HTTP 请求:设置 URL,把密钥放进正确的请求头,按 API 要求的格式组织数据,发送请求,检查状态码,解析响应,并在网络波动时处理重试。

使用 SDK 时,代码接近这一行:

const customer = await stripe.customers.create({ email: "lena@example.com" });

在这一行代码背后,SDK 会处理:

  • 身份验证——在每个请求中正确附加你的密钥
  • 数据格式化——将你的数据转换为 API 所要求的格式,并把响应转换回对象
  • 错误处理——把状态码转换为清晰的错误类型,便于你的代码捕获
  • 重试——当请求因临时原因失败时安全地再次尝试(许多官方 SDK 都会这样做)
  • 类型——在 TypeScript 中,告诉你的编辑器有哪些字段,使错误在运行代码之前就能被发现

实例演示:为客服应用添加 AI 回复

你请 AI 构建工具:“当客户提交客服工单时,使用 AI 模型生成一条建议回复。”

  1. AI 将模型服务商的官方 SDK 作为软件包安装到你的项目中(在 JavaScript 项目中,从 npm 仓库安装)。
  2. 你把服务商的 API 密钥添加为项目机密。SDK 会在服务端从环境变量中读取它。
  3. AI 编写一个服务端路由,使用工单内容和一段简短指令调用 SDK,并把建议回复保存到数据库中。
  4. 浏览器永远看不到密钥,它只调用你自己的服务端路由。

如果服务商之后更改了 API,通常会发布新版本的 SDK。更新软件包——并检查发行说明中是否有破坏性变更——往往就足够了。

关键术语

术语含义
依赖项(Dependency)你的项目所依赖的外部代码。SDK 就是其中一种。
软件包 / 包管理器(Package / package manager)可下载的代码包,以及用来安装它的工具(JavaScript 用 npm,Python 用 pip)。
客户端库(Client library)让调用某个 API 更容易的代码。对于网络服务而言,它往往就是“SDK”的含义。
服务端 SDK(Server-side SDK)在你的后端运行,可以安全地使用机密密钥。
客户端 / 浏览器 SDK(Client-side / browser SDK)在用户的浏览器中运行。只应提供公开或“可发布”的密钥。
版本(Version)每个 SDK 发布版本都有编号(如 4.2.0)。版本号大幅跳跃通常意味着存在破坏性变更。
破坏性变更(Breaking change)需要你修改代码才能适配的更新。
更新日志 / 发行说明(Changelog / release notes)服务商列出的每个版本的变更内容。

常见误解

  • “SDK 和 API 是同一回事。” API 是服务的接口,SDK 是建立在它之上的便捷层。大多数网络 API 不用 SDK 也能调用,只是工作量更大。
  • “装好 SDK,集成就完成了。” 你仍然需要在服务商处拥有账户、正确的密钥,以及能处理各种失败情况的代码。
  • “名称正确的软件包就是官方版本。” 攻击者有时会发布名称相似的仿冒软件包。请在服务商文档中核对确切的软件包名称。
  • “浏览器 SDK 可以使用我的机密密钥。” 绝对不行。浏览器代码中的任何内容都对访问者可见。机密密钥只能放在服务端代码中——参见如何安全保管 API 密钥。
  • “SDK 永远不需要更新。” 旧版本会停止接收修复,并且在服务商停用旧 API 版本后最终会失效。

向你的 AI 构建工具提出的要求

  • “使用服务商的官方 SDK,而不是第三方封装。告诉我你安装的确切软件包名称和版本。”
  • “只在服务端使用 SDK,并从环境变量中读取密钥。”
  • “这个 SDK 的哪些部分在浏览器中运行?它们使用哪些密钥?”
  • “如果 SDK 调用失败或超时,会发生什么?向用户显示清晰的提示,并记录错误。”
  • “列出此应用依赖的每一个 SDK 和软件包,以及各自的用途。”
  • “检查我们使用的 SDK 是否过期,或存在已知的安全问题。”

Mythex 中的 SDK

Mythex 智能体可以使用你技术栈对应的常规包管理器,在项目沙箱中安装软件包,包括各服务商的 SDK——只需说明软件包名称以及你希望它实现的功能。请参阅使用 npm 软件包。Mythex 并不为你的应用提供预先构建好的集成目录:你需要把服务商的密钥保存为项目机密,并请智能体从服务端调用该服务,具体方法见集成任意 API。

想了解 SDK 底层的内容,请阅读什么是 API。关于两个基于 SDK 的常见功能,请参阅如何为应用添加支付和如何使用 LLM API。

常见问题

用简单的话说,什么是 SDK?

SDK(软件开发工具包)是一组现成的代码、文档和工具,由公司提供,方便开发者使用其服务或平台。你无需手动编写每一个 API 请求,只需调用 SDK 已经提供的简单函数即可。

SDK 和 API 有什么区别?

API 是与某项服务通信的一套规则,包括它接受的请求和返回的响应。SDK 则是建立在 API 之上的工具包,通常面向某一种编程语言,它替你发出这些请求,并处理身份验证、重试和数据格式等细节。

SDK 是免费的吗?

大多数用于网络服务的 SDK 都可以免费下载,并且是开源的,但它所连接的服务可能会按使用量收费。使用 Stripe 或 OpenAI 的 SDK 本身不收费;它发出的支付或 AI 请求则由服务商计费。

使用 SDK 安全吗?

通常,服务商官方提供的 SDK 是调用其服务最安全的方式,因为它们有人持续维护,并负责处理安全细节。请从官方软件包仓库安装,保持更新,并小心那些名称相似的非官方软件包。

Mythex · Pricing · 用 AI 构建任何东西 · 网站和应用模板 · Mythex 对比 · AI 应用构建术语表 · 免费的 AI 应用构建工具 · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 繁體中文(香港) 繁體中文(台灣)