Files
test-repo/docs/extra/extra2/extra2-what-is-api.md
T
sanbuphy a4b583b13f feat(docs): integrate version2 curriculum and stage-3 updates
概要
- 将 version2 分支的课程结构重构、第三阶段章节新增、示例资源迁移、高级 RAG 文档与 Vercel 部署配置等整合为 main 上的一次汇总提交

内容导航与 README 调整
- 更新 README 的总体介绍文案,引入“第零阶段 + 第一到第三阶段”的完整学习路径描述
- 将原先的“三阶段实战路径”说明替换为新版分阶段描述,突出从小游戏到跨平台复杂应用的学习节奏
- 删除已过时的“第二次更新将在分支 version2 合并到主分支”的提示,改为直接以 main 为主线
- 统一 README 顶部标题和排版风格,保证中英文导航、徽章展示等视觉结构一致

课程结构与章节导航更新
- 调整 docs 目录下的学习阶段导航结构,使 README 中的导航表与各 stage 实际目录对齐
- 补全并创建 stage-3 相关章节入口文件,用于承载高级阶段的课程内容
- 新增或更新以下章节入口:
  - 高级核心技能:
    - docs/stage-3/core-skills/3.1-mcp-claudecode-skills/index.md
    - docs/stage-3/core-skills/3.2-long-running-tasks/index.md
  - 多平台开发:
    - docs/stage-3/cross-platform/3.3-wechat-miniprogram/index.md
    - docs/stage-3/cross-platform/3.4-wechat-miniprogram-backend/index.md
    - docs/stage-3/cross-platform/3.5-android-app/index.md
    - docs/stage-3/cross-platform/3.6-ios-app/index.md
  - 个人品牌:
    - docs/stage-3/personal-brand/3.7-personal-website-blog/index.md
- 保持 stage-0、stage-1、stage-2 既有章节结构不变的前提下,对导航表格进行排版和链接校正,使整体课程地图清晰、可点击

示例与图片资源重组
- 将原先位于 docs/examples/example1/images/ 下的微信小程序示例图片,整体迁移到 stage-3 的正式课程路径中:
  - 目标路径:docs/stage-3/3.3-how-to-build-a-wechat-miniprogram/example1/images/
- 通过 rename 方式保留 git 历史关系,避免图片资源被视为完全新增,从而方便后续追踪
- 为微信小程序示例新增 index 页面:
  - docs/stage-3/3.3-how-to-build-a-wechat-miniprogram/example1/index.md
- 使该示例在“高级三:多平台开发:如何构建微信小程序”章节中有清晰的入口,对应实际实战内容

高级 RAG 与 AI 进阶文档
- 新增一篇系统介绍 RAG 的高级文档:
  - docs/stage-3/ai-advanced/3.a1-rag-introduction/extra5-what-is-rag-and-how-does-it-work-and-future.md
- 覆盖内容包括:RAG 的基本概念、典型架构、工作流程以及未来演进方向,为第三阶段的复杂应用提供知识检索基础
- 配套引入多张插图,帮助读者从架构图和流程视角理解 RAG:
  - docs/stage-3/ai-advanced/3.a1-rag-introduction/images/image1.png ~ image15.png

部署与工程配置
- 新增 vercel.json 配置文件,为项目在 Vercel 上的部署提供基础配置
  - 明确文档构建产物的输出路径和静态站点托管方式
  - 为之后的一键部署和自动化预览打下基础

依赖与锁文件更新
- 调整 package.json 中与新版文档结构和部署相关的配置,保持脚本和依赖与当前课程形态同步
- 更新 package-lock.json,以反映最新的依赖树和版本锁定状态
- 保证在执行 npm install / npm run build 时,依赖环境与 version2 中的实际使用情况一致

兼容性与行为说明
- 该提交通过 npm run build 验证,确保在整合 version2 内容后,VitePress 构建过程正常完成
- main 分支上的历史被压缩为一条有语义的“第二次大更新”提交,详细的开发过程仍保留在 version2 分支,用于后续需要时回溯
2026-01-12 12:25:44 +08:00

9.7 KiB
Raw Blame History

扩展知识 2 - API 开发手册:从核心逻辑到 AI 场景集成

随着数字化进程的加速,我们每天都在与成百上千个软件系统打交道。但对于初学者来说,一个始终绕不开的困惑是:这些看起来互不相干的应用,到底是怎么“对话”的? 为什么我在这个 App 里点一下,另一个 App 就能立刻做出反应?

面对这种困惑,最直观的做法或许是“临时抱佛脚”:遇到需求再搜索具体的函数调用或者是网络协议,对照文档进行处理。看到图片需求就想到图像生成,碰到文本任务就找来大模型,再在海量接口中货比三家。然而,把零散的接口堆在一起,与在应用开发中系统性地规划、选型和组合 API 能力,是两件截然不同的事情。仅靠临时查资料与经验判断,会带来认知碎片化、方案设计随意、接口复用困难等一系列严峻挑战。

为了解决这些痛点,本篇手册以“API 核心逻辑”为整理思路。在这本手册里,我们想做的不是堆名词,而是帮你快速搞清楚三件事:“这件事可以用什么 API 做?它的本质逻辑是什么?接下来该怎么安全地调用它?” 通过从生活类比到代码实践的系统梳理,我们将为你揭开 API 的神秘面纱,帮你建立起从“逻辑认知”到“场景映射”再到“代码实现”的完整链路。

由于 内容较多 ,你可以在实践过程中遇到场景不知道如何选型的问题再查阅手册寻找参考;推荐你根据具体应用方向,让 AI 参考该手册,给出可参考的模型选型建议、方案 API 调用建议即可。

如果你只想了解对应的类别,不想看具体内容,只需要看每个大章节的初始段内容即可,例如 1 、2 的内容,但不需要看 5.1 或者 5.2 的代码细节。

推荐本手册只在需要时查阅对应部分或只浏览一级目录部分,若有兴趣再浏览全文。

之后更新会在每个章节部分,推荐可尝试使用的模型 API 服务地址。

本节课你将学到

  • 核心概念映射:通过“电源插座”与“餐厅点餐”等经典类比,建立对 API 请求与响应循环的直观理解。
  • 现实场景解析:了解天气、地图、社交登录及大语言模型等主流 API 的工作原理,掌握从“功能”到“接口”的映射方法。
  • 代码实践与安全:掌握 Python 环境下 AI API 的调用方式,并理解前端开发中后端代理等安全工程实践的重要性。

完成本手册的学习后,你将对主流 API 能力建立起入门级的系统化认知,不仅知道“市面上有哪些接口、常配哪些产品”,更能理解它们在整体架构中的位置和相互关系。知道在面对具体业务需求时,如何快速定位所需能力、做出有依据的选型,为构建 AI 应用体系打下坚实基础。


1. 什么是 API?—— 从墙上的插座说起

API 的全称是 Application Programming Interface(应用程序编程接口),听起来很硬核,但我们可以把它想象成你墙上的电源插座

当你把手机充电器插进插座时,你并不需要知道远处的发电厂是在烧煤还是在用风力发电,也不需要理解复杂的电网是怎么把电输送到你家的。对你来说,电厂就是一个“黑盒子”。你唯一关心的就是这个插座:只要你的插头尺寸对得上(符合标准),一插进去,电就来了。

在这个例子中,你的手机就是“客户端”(程序),发电厂是“服务器”(另一个服务),而墙上的插座就是 API。它是一个预先定义好的、标准的“连接点”。它把复杂的内部逻辑屏蔽在墙后面,只给你留下一个简单的接口,让你能轻而易举地获取原本非常复杂的功能或数据。

2. 为什么 API 如此重要?

正因为有了这些“插座”,现代技术的创新才变得如此迅速。开发者不需要从头去研究如何发电(比如画地图、写支付系统),只需要调用现成的 API,就能像搭积木一样快速构建出功能强大的应用。这不仅节省了巨大的开发成本,还让自动化成了可能——比如让系统自动处理重复性工作,同步数据或发送通知,把人类从琐碎的劳动中解放出来。同时,API 还充当了安全守门人的角色,确保只有合法的插头(请求)才能接通,让企业可以放心地使用第三方提供的尖端服务。

3. API 是如何工作的?

如果说电源插座是解释“接口”概念的基础版,那 API 的实际运作动态更像是在餐厅点餐

在这个比喻中,你(客户端)坐下看菜单,决定了要吃什么。这时候,服务员(API)走了过来,记下你的需求,然后转身跑向厨房(服务器)。厨房里的大厨根据订单开始忙碌,做出一盘精美的菜肴。最后,服务员再次现身,把食物端到你面前。

在这个过程中,API 请求就像是你的订单。它包含了你想访问的“端点”(菜名)、你想做的动作(是获取数据还是提交信息)以及具体的参数(比如只要伦敦的天气)。而 API 响应 则是服务员带回的结果,其中包含了告诉你是否成功的“状态码”(比如 200 代表大功告成)以及你真正想要的“响应体”数据。

4. 现实世界的例子:我们身边的“服务窗口”

API 无处不在,在后台默默工作。

天气预报 API 它就像一个专门提供气象信息的窗口。你的天气应用向它发送坐标和密钥,它就回传一串 JSON 数据。

  • 一个简单的“请求”示例:
    • Endpoint: /current-weather
    • Parameters: city=London & apiKey=your_access_key
  • “响应”(回传的数据): json { "city": "London", "temperature": "15°C", "condition": "Cloudy", "humidity": "70%" } 应用拿到这些数据后,再把它们漂亮地展示在你的手机屏幕上。

地图服务 API 不管是外卖平台还是打车软件,它们本身并不生产地图。它们通过调用高德或 Google Maps 的 API,就能获得精准的路线规划和导航功能。

  • 一个简单的“请求”示例:
    • Endpoint: /directions
    • Parameters: origin=Eiffel Tower & destination=Louvre Museum & mode=driving
  • “响应”(回传的数据): json { "total_distance": "4.5 kilometers", "estimated_time": "15 minutes", "route_steps": [ "1. Head east on Champ de Mars...", "2. Turn left onto Quai Branly...", "..." ] } 通过这些数据,应用就能在地图上绘制路线并提供导航指令。

社交媒体登录 API 当你点击“使用 Google 登录"时,购物应用会问 Google API:“这个用户是谁?”Google 验证后告诉应用:“他是 John Doe”。这样,你不用输入密码就能安全登录。

大语言模型 APIAI 的超级大脑) 这是目前最火的“万能插座”。你传过去一段话,它就能回传一段有逻辑的回复。开发者不需要自己训练大模型,只需要接通 OpenAI 或 DeepSeek 的 API,就能让自己的应用瞬间变聪明。

5. 在代码中,API 长什么样?

当你真正开始动手写代码时,会遇到一些技术名词。别担心,你不需要现在就记住所有细节,只需要看看它们在代码里是怎么“呼吸”的。

5.1 Python 中的 AI 调用

在 Python 中调用 OpenAI 的 API 非常直观。你可以通过设置 base_url 来指定服务器地址。

import openai

openai.api_key = "YOUR_OPENAI_API_KEY"
# 如果使用第三方代理或 DeepSeek 等兼容接口,可以修改 base_url
# openai.base_url = "https://api.deepseek.com/v1/"

response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "system", "content": "你是一个得力的助手。"},
        {"role": "user", "content": "你好,怎么使用 API"}
    ]
)

print(response.choices[0].message["content"])

许多模型(如 DeepSeek)都兼容 OpenAI 的格式。你只需要更换 API 密钥和地址,就能无缝切换。

5.2 前端开发中的安全实践

如果你在做网页,切记不要在浏览器代码里直接写 API 密钥,否则会被人偷走。通常的做法是写一个后端代理,让服务器去替你完成调用。

// 后端 Node.js 示例
const express = require('express')
const axios = require('axios')
const app = express()
app.use(express.json())

app.post('/api/chat', async (req, res) => {
  try {
    const response = await axios.post(
      'https://api.openai.com/v1/chat/completions',
      {
        model: 'gpt-3.5-turbo',
        messages: [{ role: 'user', content: req.body.message }]
      },
      {
        headers: { Authorization: `Bearer ${process.env.OPENAI_API_KEY}` }
      }
    )
    res.json({ reply: response.data.choices[0].message.content })
  } catch (error) {
    res.status(500).json({ error: error.message })
  }
})

app.listen(3001, () => console.log('服务器运行在 3001 端口'))

你可以使用 curl 命令来测试这个接口:

curl -X POST http://localhost:3001/api/chat \
  -H "Content-Type: application/json" \
  -d '{"message":"你好,请问你是谁?"}'

6. 开启你的 API 之旅

API 是现代数字世界的基石。通过理解“请求与响应”这个简单的逻辑,你已经迈出了通往软件开发广阔世界的第一步。在接下来的 Z.ai 探索中,我们将亲手尝试这些调用,感受 AI API 的魅力。


参考资料