43 lines
1.2 KiB
Markdown
43 lines
1.2 KiB
Markdown
## 问题分析
|
||
|
||
当前服务器代码存在以下问题:
|
||
1. `QueryLog`结构体中只有部分字段有JSON标签
|
||
2. 缺少完整的JSON序列化支持,导致API返回的JSON格式不完整
|
||
3. 需要确保所有字段都能正确序列化为JSON
|
||
|
||
## 解决方案
|
||
|
||
### 1. 完善QueryLog结构体的JSON标签
|
||
|
||
**文件**:`dns/server.go`
|
||
|
||
**修改内容**:
|
||
- 为`QueryLog`结构体的所有字段添加正确的JSON标签
|
||
- 确保`Timestamp`字段正确序列化为ISO格式时间
|
||
- 确保`Answers`字段序列化为`"answers"`(小写)
|
||
|
||
### 2. 确保API返回完整的JSON数据
|
||
|
||
**文件**:`http/server.go`
|
||
|
||
**修改内容**:
|
||
- 检查`handleLogsQuery`函数,确保返回完整的日志数据
|
||
- 确保日志查询API返回包含所有必要字段的JSON数据
|
||
|
||
### 3. 测试验证
|
||
|
||
**步骤**:
|
||
- 重启DNS服务器
|
||
- 使用API测试工具验证`/api/logs/query`返回的JSON格式正确
|
||
- 确保所有字段都正确序列化
|
||
|
||
## 预期效果
|
||
|
||
- API返回的JSON数据包含所有日志字段
|
||
- 前端能够正确解析API返回的JSON数据
|
||
- 解析记录通过API查询方式显示,不再使用console.log
|
||
|
||
## 关键文件修改
|
||
|
||
1. **`dns/server.go`**:完善`QueryLog`结构体的JSON标签
|
||
2. **`http/server.go`**:确保API返回完整的JSON数据 |