个人开发6
2023年10月25日
今天主要推进了后备方案模块的数据库和接口部分。上午设计了备份记录表的结构包含backup_id triggertime status filepath四个字段并用MySQL Workbench确认了表关系。下午用Spring Boot写了两个基础接口POST api-backup-trigger用于手动触发备份GET api-backup-list返回备份列表但分页功能还没加。前端用React搭了个简易管理页面放了带占位符的表格和Ant Design的弹出框按钮。
遇到三个典型问题:第一个是前端调用接口时出现CORS跨域错误检查发现后端没配置跨域策略临时用CrossOrigin注解放通所有源地址后期要改成具体白名单。第二个是React组件切换时数据丢失排查发现状态传递层级太深改用Context API统一管理状态后恢复正常。第三个是团队对备份文件存储位置有分歧最后决定在数据库增加storagetype字段区分存储方式当前先测试本地路径。
技术收获有三点:一是学会了Spring Boot的Scheduled注解配置为后续定时备份做准备二是实践了Context API替代Redux的轻量级状态管理方案三是意识到字段预留扩展性的重要比如今天加的storagetype字段避免以后大改表结构。协作方面发现用Swagger自动生成接口文档后前后端联调速度明显提升。
代码片段:
后端跨域临时解决方案
CrossOrigin(origins = "")
RestController
public class BackupController {
GetMapping("api-backup-list")
public List
return backupService.getAll();
}
}
前端状态管理改造
const BackupContext = createContext();
function App() {
const [backups setBackups] = useState([]);
return (
<BackupContext.Provider value={{ backups setBackups }}>
);
}
浙公网安备 33010602011771号