首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Vibe Coding开发实战:AI辅助构建RESTful API服务

Vibe Coding开发实战:AI辅助构建RESTful API服务

原创
作者头像
IT大佬 jzit-top
发布2026-08-24 15:17:30
发布2026-08-24 15:17:30
1380
举报

Vibe Coding开发实战:AI辅助构建RESTful API服务

Vibe Coding是一种以自然语言为驱动的开发范式,开发者通过清晰描述需求,让AI(如Cursor、GitHub Copilot)生成代码,再通过迭代提示优化实现。本文以构建一个用户管理RESTful API为例,展示Vibe Coding的完整流程,包括环境配置、提示词设计、代码生成、测试与部署。

一、Vibe Coding工具与环境

本示例使用Cursor IDE(内置GPT-4),后端采用Node.js + Express,数据存储使用内存数组(便于演示,生产可换MongoDB)。确保已安装Node.js v18+。

初始化项目:

代码语言:javascript
复制
mkdir vibe-api && cd vibe-api
npm init -y
npm install express cors
npm install --save-dev nodemon

package.json中添加启动脚本:

代码语言:javascript
复制
"scripts": {
  "start": "node server.js",
  "dev": "nodemon server.js"
}

二、用自然语言生成核心代码

在Cursor中新建server.js,输入以下注释作为提示词:

代码语言:javascript
复制
// 创建一个Express服务器,监听3000端口
// 实现用户管理API,包含以下端点:
// GET /api/users - 返回所有用户
// GET /api/users/:id - 返回指定id的用户,不存在返回404
// POST /api/users - 添加新用户,请求体{name, email},验证name和email必填,email格式正确
// PUT /api/users/:id - 更新用户信息
// DELETE /api/users/:id - 删除用户
// 使用内存数组存储用户,初始包含两个用户
// 添加CORS中间件和JSON解析

按下Ctrl+K(Cursor的AI生成命令),AI生成如下代码:

代码语言:javascript
复制
const express = require('express');
const cors = require('cors');
const app = express();

app.use(cors());
app.use(express.json());

let users = [
  { id: 1, name: 'Alice', email: 'alice@example.com' },
  { id: 2, name: 'Bob', email: 'bob@example.com' }
];

// 获取所有用户
app.get('/api/users', (req, res) => {
  res.json(users);
});

// 获取单个用户
app.get('/api/users/:id', (req, res) => {
  const user = users.find(u => u.id === parseInt(req.params.id));
  if (!user) return res.status(404).json({ error: 'User not found' });
  res.json(user);
});

// 创建用户
app.post('/api/users', (req, res) => {
  const { name, email } = req.body;
  if (!name || !email) return res.status(400).json({ error: 'Name and email are required' });
  const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
  if (!emailRegex.test(email)) return res.status(400).json({ error: 'Invalid email format' });
  const newUser = { id: users.length + 1, name, email };
  users.push(newUser);
  res.status(201).json(newUser);
});

// 更新用户
app.put('/api/users/:id', (req, res) => {
  const user = users.find(u => u.id === parseInt(req.params.id));
  if (!user) return res.status(404).json({ error: 'User not found' });
  const { name, email } = req.body;
  if (name) user.name = name;
  if (email) {
    const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
    if (!emailRegex.test(email)) return res.status(400).json({ error: 'Invalid email format' });
    user.email = email;
  }
  res.json(user);
});

// 删除用户
app.delete('/api/users/:id', (req, res) => {
  const index = users.findIndex(u => u.id === parseInt(req.params.id));
  if (index === -1) return res.status(404).json({ error: 'User not found' });
  users.splice(index, 1);
  res.json({ success: true });
});

app.listen(3000, () => console.log('Server running on port 3000'));

开发者检查代码逻辑,确认生成无误。这一步展示了Vibe Coding的效率:AI自动处理了路由、验证、错误处理等细节。

三、迭代优化:添加中间件与日志

Vibe Coding的核心是迭代。我们可以继续用注释要求AI改进:

server.js顶部添加提示:

代码语言:javascript
复制
// 添加一个简单的日志中间件,记录每个请求的方法和URL
// 添加一个错误处理中间件,捕获异常并返回500状态码

AI生成:

代码语言:javascript
复制
// 日志中间件
app.use((req, res, next) => {
  console.log(`${new Date().toISOString()} - ${req.method} ${req.url}`);
  next();
});

// 错误处理中间件(放在所有路由之后)
app.use((err, req, res, next) => {
  console.error(err.stack);
  res.status(500).json({ error: 'Internal server error' });
});

四、用AI生成测试

Vibe Coding也适用于测试代码。创建test/api.test.js,提示AI:

代码语言:javascript
复制
// 使用Jest和supertest测试用户API
// 测试GET /api/users返回200和数组
// 测试POST /api/users创建用户,验证返回201和新用户
// 测试POST /api/users缺少name返回400
// 测试GET /api/users/999返回404

AI生成的测试代码:

代码语言:javascript
复制
const request = require('supertest');
const express = require('express');
const app = express();

// 由于server.js未导出app,这里简化测试:直接重新创建应用逻辑
// 实际项目应将app导出,此处仅为示例
app.use(express.json());
let users = [{ id: 1, name: 'Alice', email: 'alice@example.com' }];
app.get('/api/users', (req, res) => res.json(users));
app.post('/api/users', (req, res) => {
  const { name, email } = req.body;
  if (!name || !email) return res.status(400).json({ error: 'Name and email required' });
  const newUser = { id: users.length + 1, name, email };
  users.push(newUser);
  res.status(201).json(newUser);
});

describe('User API', () => {
  test('GET /api/users returns 200 and array', async () => {
    const res = await request(app).get('/api/users');
    expect(res.statusCode).toBe(200);
    expect(Array.isArray(res.body)).toBe(true);
  });

  test('POST /api/users creates user', async () => {
    const res = await request(app)
      .post('/api/users')
      .send({ name: 'Charlie', email: 'charlie@example.com' });
    expect(res.statusCode).toBe(201);
    expect(res.body.name).toBe('Charlie');
  });

  test('POST /api/users missing name returns 400', async () => {
    const res = await request(app)
      .post('/api/users')
      .send({ email: 'test@example.com' });
    expect(res.statusCode).toBe(400);
  });
});

安装测试依赖并运行:

代码语言:javascript
复制
npm install --save-dev jest supertest
npx jest

五、Vibe Coding最佳实践

  1. 提示词要精确:明确指定端点、验证规则、错误码等,AI生成的代码越符合预期。
  2. 分步生成:先获取基础框架,再逐步添加功能,避免一次性要求过多导致代码混乱。
  3. 人工审查:AI可能生成有安全漏洞或性能问题的代码,特别是涉及数据库、认证等场景,必须人工检查。
  4. 利用上下文:在Cursor中保持相关文件打开,AI能利用项目上下文生成更一致的代码。

总结

Vibe Coding将开发者从重复编码中解放,专注于业务逻辑和系统设计。本文通过一个用户管理API的完整开发流程,展示了如何用自然语言驱动AI生成代码、迭代优化和编写测试。虽然AI尚不能完全替代开发者,但它显著提升了开发效率。随着AI编程工具不断进化,掌握Vibe Coding将成为未来开发者的必备技能。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • Vibe Coding开发实战:AI辅助构建RESTful API服务
    • 一、Vibe Coding工具与环境
    • 二、用自然语言生成核心代码
    • 三、迭代优化:添加中间件与日志
    • 四、用AI生成测试
    • 五、Vibe Coding最佳实践
    • 总结
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档