资讯动态

成为AI全栈 - 第3课:路由 RESTful Elysia 状态码 设计规范

发布时间:2026/8/25 2:53:18 来源:尧图企业网站定制
成为AI全栈 - 第3课路由 RESTful Elysia 状态码 设计规范从今天开始, 你是架构师学会关键词就行代码让AI实现今天你会学到这些关键词关键词一句话解释路由URL 到功能的映射如/users→ 查询用户RESTfulAPI 设计规范用 HTTP 方法表示操作Elysia高性能 Web 框架链式 API 设计状态码HTTP 响应状态如 200 成功、404 找不到一句话总结用 Elysia 设计 RESTful 路由让 API 清晰、一致、可预测。上节课回顾我们用 AI 生成了一个简单的后端服务sql体验AI代码助手代码解读复制代码GET / → 返回 Hello World GET /time → 返回当前时间今天我们要深入理解路由。路由是什么一句话路由就是 URL 到功能的映射。bash体验AI代码助手代码解读复制代码用户访问的 URL → 后端执行的功能 ───────────────────────────────────────── GET /users → 查询所有用户 GET /users/123 → 查询 ID 为 123 的用户 POST /users → 创建新用户 PUT /users/123 → 更新 ID 为 123 的用户 DELETE /users/123 → 删除 ID 为 123 的用户RESTful API 设计规范RESTful 是一种 API 设计规范让接口更清晰、统一。核心原则1. 用 URL 表示资源bash体验AI代码助手代码解读复制代码/users → 用户资源 /orders → 订单资源 /products → 商品资源注意, 所有资源都用复数命名2. 用 HTTP 方法表示操作方法操作示例GET查询GET /users 查询所有用户POST创建POST /users 创建用户PUT更新全部PUT /users/123 更新用户123PATCH更新部分PATCH /users/123 部分更新DELETE删除DELETE /users/123 删除用户123注意, 大部分编辑功能我们都应该用PATCH方法而不是PUT3. 用状态码表示结果状态码含义场景200成功请求正常处理201创建成功新建资源成功400请求错误参数不对401未授权需要登录404找不到资源不存在500服务器错误后端出错了实战设计用户管理 API我们要设计一套用户管理的 API包含增删改查。API 设计表功能方法URL请求体响应查询所有用户GET/users-用户列表查询单个用户GET/users/:id-单个用户创建用户POST/users{name, email}新用户更新用户PUT/users/:id{name, email}更新后的用户删除用户DELETE/users/:id-删除结果统一响应格式json体验AI代码助手代码解读复制代码{ success: true, data: { ... }, message: 操作成功 }用 Trae 生成代码复制这段提示词markdown体验AI代码助手代码解读复制代码用 Elysia 框架创建用户管理 RESTful API 要求 1. 内存存储用 Map 或数组模拟数据库 2. 实现以下接口 - GET /users - 查询所有用户 - GET /users/:id - 查询单个用户 - POST /users - 创建用户body: {name, email} - PUT /users/:id - 更新用户 - DELETE /users/:id - 删除用户 3. 统一响应格式 { success: boolean, data: any, message: string } 4. 状态码规范 - 200: 成功 - 201: 创建成功 - 404: 用户不存在 - 400: 参数错误 5. 添加请求日志 请生成完整的 TypeScript 代码Trae 会生成类似这样的代码typescript体验AI代码助手代码解读复制代码import { Elysia } from elysia; // 内存存储 const users new Map(); let idCounter 1; const app new Elysia() .onRequest(({ request }) { console.log(${request.method} ${new URL(request.url).pathname}); }) // 查询所有用户 .get(/users, () { return { success: true, data: Array.from(users.values()), message: 查询成功 }; }) // 查询单个用户 .get(/users/:id, ({ params: { id }, set }) { const user users.get(id); if (!user) { set.status 404; return { success: false, data: null, message: 用户不存在 }; } return { success: true, data: user, message: 查询成功 }; }) // 创建用户 .post(/users, async ({ body, set }) { const { name, email } body as { name: string; email: string }; if (!name || !email) { set.status 400; return { success: false, data: null, message: name 和 email 不能为空 }; } const newUser { id: String(idCounter), name, email, createdAt: new Date().toISOString() }; users.set(newUser.id, newUser); set.status 201; return { success: true, data: newUser, message: 创建成功 }; }) // 更新用户 .put(/users/:id, async ({ params: { id }, body, set }) { const user users.get(id); if (!user) { set.status 404; return { success: false, data: null, message: 用户不存在 }; } const { name, email } body as { name?: string; email?: string }; const updatedUser { ...user, ...(name { name }), ...(email { email }), updatedAt: new Date().toISOString() }; users.set(id, updatedUser); return { success: true, data: updatedUser, message: 更新成功 }; }) // 删除用户 .delete(/users/:id, ({ params: { id }, set }) { const user users.get(id); if (!user) { set.status 404; return { success: false, data: null, message: 用户不存在 }; } users.delete(id); return { success: true, data: null, message: 删除成功 }; }) .listen(3000); console.log(Server running at http://localhost:${app.server?.port});Node.js 用户注意需要修改代码使用 Node 适配器typescript体验AI代码助手代码解读复制代码import { Elysia } from elysia; import { node } from elysiajs/node; // ... 路由代码 ... .listen(3000, node); // ← 加上 node 适配器测试 API启动服务bash体验AI代码助手代码解读复制代码bun run index.ts1. 创建用户bash体验AI代码助手代码解读复制代码curl -X POST http://localhost:3000/users \ -H Content-Type: application/json \ -d {name: 张三, email: zhangsanexample.com}返回json体验AI代码助手代码解读复制代码{ success: true, data: { id: 1, name: 张三, email: zhangsanexample.com, createdAt: 2024-01-15T10:30:00.000Z }, message: 创建成功 }2. 查询所有用户bash体验AI代码助手代码解读复制代码curl http://localhost:3000/users3. 查询单个用户bash体验AI代码助手代码解读复制代码curl http://localhost:3000/users/14. 删除用户bash体验AI代码助手代码解读复制代码curl -X DELETE http://localhost:3000/users/1好 API 的 3 个标准1. 清晰URL 一看就知道是做什么的bash体验AI代码助手代码解读复制代码✅ GET /users/orders → 查询用户的订单 ❌ GET /getUserOrderData → 不够简洁2. 一致同样的场景用同样的格式css体验AI代码助手代码解读复制代码✅ 所有列表接口都返回 { success, data: [], message } ✅ 所有错误都返回 4xx/5xx 状态码3. 可预测符合 RESTful 规范前端一看就懂bash体验AI代码助手代码解读复制代码/users → 用户相关 /orders → 订单相关核心收获今天学习了✅路由 URL 到功能的映射 ✅RESTful 规范 用 HTTP 方法表示操作 ✅状态码 表示请求结果 ✅统一响应格式 让前端好处理下节课预告第4课不用懂 SQLAI 帮你操作数据库我们将理解数据库和 ORM用 Drizzle ORM 操作 SQLite把内存存储换成真正的数据库

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价