浏览器 / 客户端 │ GET /api/comments?slug=hello-world │ POST /api/comments ▼Worker 接口 ├─ Hono 路由 ├─ 请求参数校验 ├─ D1 预编译语句 └─ JSON 响应 ▼D1 comments-db这个结构适合评论、留言、表单、轻量后台和低频业务表。大文件进 R2,日志流和高吞吐事件进日志或数据管道,全文搜索走搜索能力。
Worker 接收 /api/*,做鉴权、输入校验、限流和 JSON 响应。D1 保存关系数据,用迁移文件管理表结构,用索引支撑常见查询。SQL 读写都用预编译语句,不拼接用户输入。评论、表单等公开写入口叠加 Turnstile、限流或登录态。验证时把本地迁移、本地接口、远程迁移、线上接口分开。
上线前至少确认这几件事:
- 所有来自查询参数、路径、请求正文和请求头的值,都先校验长度和格式。
- SQL 读写使用预编译语句,不拼接用户输入。
- 高频筛选字段已经建索引。评论列表通常按
slug + created_at建索引。 - 评论、表单、支付回调这类写入场景要处理重复提交。
- 公开写接口叠加 Turnstile、限流或登录态。
- D1 只放轻量关系型数据;大文件、日志流和高吞吐事件放到对应产品。