|
|
e14c85436b
|
feat(auth): 添加 Refresh Token 双 Token 机制
- 添加 /api/refresh-token 接口支持 Token 续期
- 登录接口返回 access_token 和 refresh_token
- 新增 refresh_tokens 表存储 refresh_token
- 部署脚本添加数据库备份和迁移功能
- deploy.sh 添加 4 项 API 测试
- 更新 AGENTS.md 文档
|
2026-04-19 16:01:41 +08:00 |
|
|
|
9d452c4e75
|
feat: 统一前后端日志和错误处理
|
2026-04-19 00:14:22 +08:00 |
|
|
|
fd21e641a2
|
fix: 将 get_weather_details 和 health_check 移出 JWT 保护作用域作为公开接口
|
2026-04-18 14:04:49 +08:00 |
|
|
|
61b1174b30
|
fix: 统一字段命名为 camelCase 并修复详情 API
- models.rs: 将 inspectiontype/assignmentnumber 的 serde rename 改为
inspectionType/assignmentNumber,与前端 TypeScript 接口保持一致
- models.rs: 为 WeatherDataBrief 添加 isFavorite 字段支持
- models.rs: WeatherData.is_favorite 添加 skip_deserializing 避免 POST
请求解析失败,同时使用 default 处理数据库 NULL 值
- handlers/weather.rs: get_weather_details 支持 string 和 number 类型的
id 参数解析
- IMPROVEMENTS.md: 新增第十三章记录本次对话经验(serde 配置、config
路径解析、TOML 结构等)
|
2026-04-17 20:47:00 +08:00 |
|
|
|
bdbba2cd60
|
feat: 添加收藏功能 API
- models.rs: 添加 is_favorite 字段到 WeatherData 和 WeatherDataBrief
- db.rs: 添加 get_favorites_list 和 set_weather_favorite 函数
- handlers/favorites.rs: 新建收藏 API 处理器
- handlers/mod.rs: 导出 favorites 模块
- main.rs: 注册收藏 API 路由
|
2026-04-17 17:40:58 +08:00 |
|
|
|
562528a1f0
|
feat: implement payment order system (create-order, mock-confirm, get-quota)
|
2026-04-17 12:45:53 +08:00 |
|
|
|
da4e6f557e
|
feat: 实现后端多环境配置机制
- 使用 toml crate 替代 config crate 直接读取配置文件
- 创建 config/default.toml、config/development.toml、config/production.toml
- 重写 config.rs 支持多环境配置加载
- 增强 deploy.sh 支持 development/production 环境参数
- 更新 IMPROVEMENTS.md 标记环境区分完成
|
2026-04-17 11:11:13 +08:00 |
|
|
|
a819a0db91
|
fix: 调整路由顺序,修复静态文件被JWT拦截的问题
- 将 /static/{tail:.*} 路由移到受保护 scope 之前
- 确保静态文件无需认证即可访问
|
2026-04-15 11:51:59 +08:00 |
|
|
|
e8990f7771
|
fix: 隐藏内部错误信息,防止敏感数据泄露
- 移除 ErrorResponse.errmsg 中的 e.to_string() 调用
- 将详细的内部错误信息改为 None,用户看不到内部详情
- 错误详情仍然记录到 JSON 日志,供开发者排查
- 健康检查端点也使用友好的错误信息
- 更新 IMPROVEMENTS.md 标记 1.3 完成
影响范围:
- src/main.rs: login handler (2处)
- src/main.rs: health_check handler (1处)
|
2026-04-15 11:11:16 +08:00 |
|
|
|
6b871ca4d6
|
refactor: 整理路由配置,分离公开接口与受保护接口
- 登录和天气详情接口移至公开区域
- 其他接口统一在 web::scope("") 下受 JWT middleware 保护
- 静态文件和健康检查移至最后
- 为 actix-ratelimit 兼容性问题做准备(当前无法在 actix-web 4.x 使用)
注意:Rate Limiting 功能暂未实现(actix-ratelimit 与 actix-web 4.x 不兼容)
|
2026-04-15 11:05:21 +08:00 |
|
|
|
338871796a
|
feat: 添加 /health 健康检查端点
- 新增 GET /health 端点,公开无需认证
- 检查 PostgreSQL 数据库连接状态
- 健康时返回: {"status": "healthy", "database": "connected"}
- 不健康时返回 HTTP 503 + {"status": "unhealthy", "database": "disconnected", "error": "..."}
- 失败时记录错误到 JSON 日志
- 用于负载均衡器、Kubernetes、1Panel 健康探针
- 更新 IMPROVEMENTS.md 标记 6.3 完成
|
2026-04-15 10:49:15 +08:00 |
|
|
|
741d6acff1
|
feat: 升级日志系统为 tracing 结构化日志
- 替换 env_logger 为 tracing + tracing-subscriber
- 统一使用 tracing::{debug, error, info, warn} 日志宏
- 消除所有 eprintln!/println 调用
- 添加 JSON 格式日志输出便于 ELK Stack 收集
- 添加文件日志轮转(每天一个新文件 ./logs/rust-backend-{date}.log)
- 日志等级过滤:rust_backend=info, actix_web=info, sqlx=warn
- 更新 IMPROVEMENTS.md 标记 6.1 日志系统两项完成
|
2026-04-15 10:39:30 +08:00 |
|
|
|
6d2824589c
|
feat: 添加用户信息存储功能
- 添加 avatar_url 和 nickname 字段到 users 表
- 修改 get_user_by_id 查询包含新字段
- 添加 save_user_profile API
- 优化 deploy.sh 默认使用 release 模式
|
2026-03-26 14:28:46 +08:00 |
|
|
|
34f698ded2
|
feat: 添加获取当前用户信息 API
新增 GET /api/user/profile 接口
- 返回用户付费状态和管理员标识
- 计算付费是否有效(考虑过期时间)
|
2026-03-25 16:08:39 +08:00 |
|
|
|
fa34e6597f
|
添加管理员API端点
- .env 添加 FREE_USER_DATA_LIMIT 配置
- 新增 GET /api/admin/users/{id} 管理员获取用户信息
- 新增 PUT /api/admin/users/{id}/payment 更新用户付费状态
- post_weather_data 集成 JWT 认证,使用 claims.user_id
- 管理员接口通过数据库查询验证 is_admin
|
2026-03-25 13:17:53 +08:00 |
|
|
|
f7450bce7f
|
修改了服务只监听本地端口
|
2025-10-21 10:07:32 +08:00 |
|
|
|
9e76976a56
|
修改了端口
|
2025-10-21 09:28:42 +08:00 |
|
|
|
edf6200acd
|
修改了不规范的temp_token返回
|
2025-10-17 23:59:49 +08:00 |
|
|
|
9ff20c16c3
|
删除了多余的info
|
2025-10-17 22:51:49 +08:00 |
|
|
|
bd60a72e68
|
修改了convertedwindspeed为float
|
2025-10-17 19:39:12 +08:00 |
|
|
|
e294c00c0b
|
修改了部分代码位置
|
2025-10-17 16:30:24 +08:00 |
|
|
|
7d4f27feff
|
添加了正确的katex方法
|
2025-10-17 15:50:59 +08:00 |
|
|
|
e76c039432
|
添加了新的log提示
|
2025-10-17 15:29:10 +08:00 |
|
|
|
e19d6af2fa
|
将println都修改为了info,
eprintln修改为了error,
将部分debug信息输出修改为了debug
|
2025-10-17 12:11:07 +08:00 |
|
|
|
7143064a09
|
更新了https功能,将原有的服务从http迁移到了https中
|
2025-09-30 17:26:56 +08:00 |
|
|
|
7fa1ae6301
|
使用了logger来进行后端的消息记录
|
2025-09-30 15:59:15 +08:00 |
|
|
|
ea64c436b6
|
可以在使用temp_token的情况下使浏览器和微信小程序前端都能获取到正确的数据
|
2025-09-29 11:56:08 +08:00 |
|
|
|
56844a537f
|
可以正常使用get_weather_details获取前端指定的数据了
|
2025-09-29 11:20:21 +08:00 |
|
|
|
58a0b6858a
|
修改了错误的数据库方法
|
2025-09-28 14:28:16 +08:00 |
|
|
|
1ac9db3f84
|
移除了不需要的方法
|
2025-09-27 18:41:19 +08:00 |
|
|
|
02703de89c
|
修改了get_weather方法,现在可以实现前端的需求了
|
2025-09-27 17:29:46 +08:00 |
|
|
|
6d680260a2
|
添加了weatherlistresponse并进行了一些修改
|
2025-09-27 16:21:04 +08:00 |
|
|
|
1c2eb82248
|
使用了jwt作为身份验证和分发
|
2025-09-26 13:48:18 +08:00 |
|
|
|
a4f2f5bf6b
|
将struct从main移动到models
|
2025-09-25 15:10:03 +08:00 |
|
|
|
ef326d82ed
|
将insert_weather_data方法移到db.rs
|
2025-09-23 10:27:41 +08:00 |
|
|
|
bf6045ece2
|
将WeatherData移到models.rs中
|
2025-09-23 10:19:59 +08:00 |
|
|
|
6513ac793f
|
修改了数据库插入中的数据类型错误
|
2025-09-22 17:34:47 +08:00 |
|
|
|
b294b6cc90
|
修改了weather-test的位置,并尝试做插入数据库
|
2025-09-22 17:02:30 +08:00 |
|
|
|
40d4c9ad49
|
weather data upload test
|
2025-09-12 09:25:15 +08:00 |
|
|
|
7e569e59d6
|
更新了get_user_id和get_openid
|
2025-09-10 15:42:05 +08:00 |
|
|
|
b289e6414e
|
change for server
|
2025-09-08 09:45:11 +08:00 |
|
|
|
f567e66485
|
访问users数据库
|
2025-09-05 15:10:30 +08:00 |
|
|
|
7570bfd50b
|
port 80
|
2025-09-05 10:07:42 +08:00 |
|
|
|
b524d00f7e
|
0.0.0.0
|
2025-09-04 16:58:20 +08:00 |
|
|
|
e6f937fe44
|
initialize
|
2025-09-04 16:36:08 +08:00 |
|