提示词库/API 接口设计说明
🔌
编程开发3 个变量

API 接口设计说明

设计一套清晰的 API:路径、参数、返回结构、错误码一次说清。

提示词原文

你是后端架构师。请设计以下功能的 API 接口:

功能需求:{功能}
技术栈:{技术栈}
调用方:{调用方}

要求:
1. 给出完整的接口列表(路径 / 方法 / 用途一句话)
2. 每个接口详细说明:请求参数(名称/类型/必填/说明)、返回结构(带字段注释)
3. 统一返回格式(成功与失败的结构),并给出具体的示例 JSON
4. 设计完整的错误码表(码值 / 含义 / 触发条件 / 建议处理方式)
5. 说明鉴权方式(token 放哪里、如何校验)
6. 说明分页、排序、筛选的统一约定
7. 指出这套接口设计中最容易出问题的地方(如并发、幂等、越权)
8. 给出 2-3 个实际调用示例(含请求和响应)

复制后把 {变量} 替换成你的实际内容即可使用

变量说明

{功能}{技术栈}{调用方}

示例填法:功能=小程序的用户收藏夹(增删查) / 技术栈=Node.js + Express + MongoDB / 调用方=微信小程序

可切换的变体

  • ·RESTful 标准版
  • ·简化内嵌版
  • ·带版本兼容版

适合什么场景

接口设计一旦定下来,前端、后端、测试都按它对表,**改起来成本极高**。最常见的惨案是:返回格式前后不一致、错误码各写各的、分页参数每个接口都不同。

提前花十分钟把接口文档定清楚,能省掉后面几天的联调扯皮。这份文档也是前后端并行开发的基础——前端可以照着文档先用 Mock 数据开发。

这条提示词适合:新功能开发、前后端协作、小程序对接后端、内部服务接口。

提示词原文

你是后端架构师。请设计以下功能的 API 接口:

功能需求:{功能} 技术栈:{技术栈} 调用方:{调用方}

要求: 1. 给出完整的接口列表(路径 / 方法 / 用途一句话) 2. 每个接口详细说明:请求参数(名称/类型/必填/说明)、返回结构(带字段注释) 3. 统一返回格式(成功与失败的结构),并给出具体的示例 JSON 4. 设计完整的错误码表(码值 / 含义 / 触发条件 / 建议处理方式) 5. 说明鉴权方式(token 放哪里、如何校验) 6. 说明分页、排序、筛选的统一约定 7. 指出这套接口设计中最容易出问题的地方(如并发、幂等、越权) 8. 给出 2-3 个实际调用示例(含请求和响应) ```

变量怎么填

  • **功能**:把功能点列清楚。"收藏夹"要展开成"添加收藏、删除收藏、查列表、查是否已收藏"
  • **技术栈**:决定写法和约定。Express 用中间件鉴权,云函数没有传统路由,写法完全不同
  • **调用方**:小程序 / Web / 第三方。**调用方的限制要说明**——小程序有 request 并发上限,第三方要限流

生成效果示例

【接口列表】
GET    /api/favorites          查询收藏列表
POST   /api/favorites          添加收藏
DELETE /api/favorites/:id      删除收藏
GET    /api/favorites/check    查询某条是否已收藏

【统一返回格式】 // 成功 { "code": 0, "message": "ok", "data": { ... } }

// 失败 { "code": 40001, "message": "参数缺失:itemId 不能为空", "data": null }

【POST /api/favorites】 请求: { "itemId": "abc123", // string, 必填, 被收藏项的唯一标识 "itemType": "tool", // string, 必填, 取值 tool | skill | prompt "remark": "" // string, 选填, 用户备注, 最长 50 字 }

响应: { "code": 0, "message": "ok", "data": { "id": "fav_8f2a...", // 收藏记录 ID "createdAt": "2026-09-30T12:00:00Z" } }

【错误码表】 0 成功 — 直接使用返回数据 40001 参数错误 必填项缺失或格式非法 提示用户具体哪个字段出错 40100 未登录 token 缺失或过期 跳转登录页 40300 越权 操作了不属于自己的数据 不提示细节,返回通用错误 40900 重复收藏 同一项已收藏 前端切换为"已收藏"状态,不发错误提示 42900 请求过频 超过限流阈值 提示稍后重试 50000 服务异常 未捕获的服务端错误 提示"服务繁忙",并上报日志

【鉴权】 Header: Authorization: Bearer <token> 中间件校验 → 解析出 userId → 挂到 req.user 所有涉及用户数据的接口,必须校验资源归属,避免越权

【分页约定】 请求:?page=1&pageSize=20 响应:{ list: [...], total: 128, page: 1, pageSize: 20, hasMore: true } ```

【易出问题的地方】 1. **越权**——删除接口只校验 token 有效,没校验这条数据属不属于当前用户。必须加 `where userId = req.user.id` 2. **重复收藏**——用户连点两次就插入两条。靠数据库唯一索引兜底,冲突时返回 40900 而不是 50000 3. **分页深度**——page 很大时 skip 性能急剧下降。数据量大时改用游标分页 ```

变体与调整

  • **要更简单**:加"合并相近接口,减少请求次数,适合小程序一次性加载"
  • **要更规范**:加"严格遵循 RESTful 规范,用标准 HTTP 状态码 + 语义化路径"
  • **要带版本**:加"路径包含版本号 /v1,并说明版本升级时的兼容策略"
  • **要有 Mock 数据**:加"为每个接口生成一份 Mock 响应示例,供前端先行开发"
  • **要 OpenAPI**:加"额外输出 OpenAPI 3.0 格式的接口描述文件"
  • **要考虑安全**:加"补充限流、防重放、敏感字段脱敏的具体方案"

常见问题

**Q:接口联调时老是报错但不知道为什么?** A:因为**错误码没定清楚**。加"每个错误码都要能明确指向问题原因,禁止用 50000 兜底一切"。

**Q:改接口导致老客户端崩溃?** A:**新增字段可以,删除和改类型不行**。加"字段只增不删,废弃字段保留并标注 deprecated,而不是直接移除"。

**Q:前端需要的字段要单独再调一次接口?** A:设计时就要想清楚**列表页需要哪些字段一次性给全**,避免"点进详情页还要再请求一次"。加"列表接口返回的字段要足够渲染列表和跳转,不需要二次请求"。

更多提示词