Skip to content

外部服务 Mock 指南

模板本地体验使用虚构 Maker 场景和本机替代服务。所有状态默认只在当前 Mock API 进程内存中变化,重启或重置后恢复基线,不会连接真实用户、商户、邮箱或云资源。

1. 启动与能力清单

在解压后的源码根目录执行:

bash
pnpm install --frozen-lockfile
pnpm dev:community-template
  • 社区 Web:http://localhost:3002
  • 模板指南:http://localhost:4173
  • Mock API:http://localhost:3999

查看可执行的本地替代能力:

bash
curl http://localhost:3999/__mock/providers

ready: true 只代表本地替代链路可用,不代表生产云服务已经配置。

2. 覆盖矩阵

外部依赖本地模式覆盖明确不覆盖
登录与用户状态真实本地 Auth + 业务场景 viewer注册、登录、退出、Session、OAuth/OIDC、本地授权页与订阅场景真实第三方 OAuth 与 SMTP 投递
数据库与缓存进程内存内容浏览、部分通用写操作、订单变化和重置SQL 并发、缓存故障、备份恢复与持久化性能
对象存储原字节内存存储头像、帖子图片和通用附件上传/读取CDN、bucket ACL、签名校验和生命周期策略
支付确定性确认订阅与积分订单从待支付变为已支付支付网络、回调验签、清结算和退款到账
视频local_http原始文件直传、原生播放、播放进度转码、截图、DRM、CDN 和云 VOD 回调
外链预览本地 fixture安全预览卡片自动加载第三方 iframe、播放器或脚本
AI固定规则可复现的内容草稿模型质量、Token、费用、限流和供应商网络
邮件本地 outbox文本/HTML payload、查看与清空SMTP 投递、退信和真实收件箱
GitHub独立只读任务显式配置仓库的公开元数据私有仓库、自动发现、写操作和隐藏抓取策略

3. 图片与附件

Web 会先请求 /v1/uploads/post-image-token/v1/uploads/asset-token,再把 multipart 原始字节上传到 /__mock/uploads,最后从 /__mock/assets/* 读回。上传数据只保存在当前 Mock API 进程内存中,不会提交到仓库,也不应当作备份。

4. 视频上传与播放

本地视频链路保持生产 contract 的状态结构:

  1. /v1/video-assets/upload-plans 创建 local_http 直传计划。
  2. 浏览器把原始字节写入 /v1/video-assets/:id/provider-upload
  3. /upload-complete 确认视频已经就绪。
  4. /playback-grants 返回短时本地播放源。
  5. /progress 保存当前进程内的播放进度。

本地实现不会伪装成云端转码。文件必须使用浏览器本身可以播放的编码。

5. 订阅与积分模拟支付

从会员页创建订阅订单后,页面可调用 /v1/subscriptions/orders/:id/mock-paid 完成明确的本地确认;积分充值使用 /v1/points/topup-orders/:id/mock-paid。确认只修改内存状态,不连接支付宝、微信或任何真实支付网络。

生产验收必须单独验证商户配置、回调签名、金额一致性、幂等、退款和对账。Mock 成功不能证明生产支付可用。

6. AI 规则结果与邮件 outbox

生成一份稳定的 Maker 内容草稿:

bash
curl -X POST http://localhost:3999/__mock/ai/draft \
  -H 'content-type: application/json' \
  -d '{"topic":"如何公开记录一个 Maker 项目"}'

写入并查看本地邮件:

bash
curl -X POST http://localhost:3999/__mock/email/send \
  -H 'content-type: application/json' \
  -d '{"to":"demo@example.com","subject":"本地邮件演示","text":"这是一封不会真实投递的邮件。"}'

curl http://localhost:3999/__mock/email/outbox
curl -X DELETE http://localhost:3999/__mock/email/outbox

7. 通用自动化与 GitHub 示例

pnpm dev:automation 启动通用自动化服务。默认任务只做健康摘要与预览,不发送邮件、不写生产数据。GitHub 示例只有在你显式填写 owner/repo 后,才会通过官方 API 读取该仓库的公开元数据;它不会自动发现仓库,也不会执行写操作。

8. 重置与生产边界

bash
curl -X POST http://localhost:3999/__mock/reset

重置会恢复 fixture,并清空上传字节、视频会话、播放进度与邮件 outbox。

生产环境必须使用真实 Space API,关闭 Mock 支付与本地视频模式,并且不能暴露 3999 端口或任何 /__mock/* 路由。需要接入新 Provider 时,先阅读包含内容与使用边界Provider 扩展