SpringBoot+Vue无缝切换Mock到真实API
·
SpringBoot+Vue用户管理系统:从Mock数据到真实API切换实践
在前后端分离项目中,使用Mock数据开发前端页面,再平滑切换到真实API是高效的工作流程。以下是关键步骤和代码示例:
一、Mock数据阶段(Vue前端)
-
Mock方案选择
- 使用
Mock.js拦截Ajax请求 - 本地JSON文件模拟接口
// src/mock/user.js import Mock from 'mockjs' Mock.mock('/api/users', 'get', { 'data|5-10': [{ 'id|+1': 1, 'name': '@cname', 'email': '@email' }] }) - 使用
-
Axios请求封装
// src/utils/request.js import axios from 'axios' const service = axios.create({ baseURL: '/api', // Mock拦截路径 timeout: 5000 }) export default service -
组件调用示例
// src/views/user/UserList.vue <script> import request from '@/utils/request' export default { async created() { const res = await request.get('/users') this.userList = res.data } } </script>
二、SpringBoot后端开发
-
RESTful API设计
// UserController.java @RestController @RequestMapping("/api/users") public class UserController { @GetMapping public ResponseEntity<List<User>> getUsers() { return ResponseEntity.ok(userService.findAll()); } } -
跨域解决方案(二选一)
- 全局配置
@Configuration public class CorsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("http://localhost:8080") // Vue开发地址 .allowedMethods("*"); } } - 注解配置
@CrossOrigin(origins = "http://localhost:8080") @GetMapping public ResponseEntity<List<User>> getUsers() { ... }
- 全局配置
三、切换真实API
-
修改Vue请求基地址
// src/utils/request.js const service = axios.create({ - baseURL: '/api', // 移除Mock路径 + baseURL: 'http://localhost:8080/api', // SpringBoot地址 }) -
移除Mock拦截
// src/main.js - import './mock' // 删除Mock导入 -
环境变量配置(生产部署)
# .env.production VUE_APP_BASE_API = 'https://your-domain.com/api'// request.js baseURL: process.env.VUE_APP_BASE_API
四、调试与验证
-
接口测试工具
- 使用Postman验证SpringBoot接口
GET http://localhost:8080/api/users -
前端调试技巧
- Chrome开发者工具 > Network标签
- 检查HTTP状态码和响应体
- 处理常见错误:
404:检查后端路由注解401:添加JWT认证头500:查看服务端日志
-
数据一致性处理
// Vue组件添加错误处理 try { const res = await request.get('/users') } catch (error) { console.error('API错误:', error.response.data) }
五、最佳实践建议
-
接口规范
- 统一响应格式:
{ "code": 200, "message": "success", "data": [...] }
- 统一响应格式:
-
切换策略
graph LR A[Mock开发阶段] --> B[后端接口完成] B --> C{接口验证} C -->|通过| D[切换基地址] C -->|失败| E[同步修改接口] -
持续集成
- 使用Swagger维护API文档
- Jest单元测试覆盖核心组件
- 自动化构建时切换环境变量
关键点:通过抽象请求模块和环境变量配置,实现无缝切换。真实API上线后,应保留Mock能力用于异常场景测试。
更多推荐
所有评论(0)