datai/docs/archive/api-docs/integration/DataiIntegrationApiCallLogController/0001-api-call-log-statistics.md

177 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# API调用日志统计接口文档
## 接口信息
- **接口名称**: API调用日志统计
- **接口路径**: `/integration/apilog/statistics`
- **请求方法**: GET
- **模块归属**: 集成模块
- **版本号**: v1.0.0
- **创建日期**: 2026-01-09
- **最后更新**: 2026-01-09
## 功能描述
获取API调用日志的统计信息支持按不同维度进行筛选和分组统计。该接口可以帮助监控API调用情况分析调用趋势识别异常调用为系统优化提供数据支持。
## 请求参数
### 路径参数
| 参数名 | 类型 | 必填 | 描述 | 示例 |
|--------|------|------|------|------|
| 无 | - | - | - | - |
### 查询参数
| 参数名 | 类型 | 必填 | 描述 | 示例 | 默认值 |
|--------|------|------|------|------|--------|
| apiType | String | 否 | API类型 | REST | - |
| connectionClass | String | 否 | 连接类名 | RESTConnection | - |
| methodName | String | 否 | 方法名 | query | - |
| status | String | 否 | 状态 | SUCCESS | - |
| startTime | Date | 否 | 开始时间 | 2026-01-01 00:00:00 | - |
| endTime | Date | 否 | 结束时间 | 2026-01-31 23:59:59 | - |
| groupBy | String | 否 | 分组维度 | apiType | - |
## 响应数据
### 成功响应
**HTTP 状态码**: 200 OK
```json
{
"code": 200,
"message": "操作成功",
"data": {
"success": true,
"statistics": {
"totalCount": 1000,
"successCount": 950,
"failCount": 50,
"avgResponseTime": 150,
"groupedData": {
"REST": 600,
"SOAP": 400
}
}
}
}
```
| 字段名 | 类型 | 描述 | 示例 |
|--------|------|------|------|
| success | Boolean | 是否成功 | true |
| statistics | Object | 统计数据 | - |
| totalCount | Integer | 总调用次数 | 1000 |
| successCount | Integer | 成功调用次数 | 950 |
| failCount | Integer | 失败调用次数 | 50 |
| avgResponseTime | Integer | 平均响应时间(ms) | 150 |
| groupedData | Object | 分组统计数据 | - |
### 失败响应
**HTTP 状态码**: 400 Bad Request
```json
{
"code": 400,
"message": "参数错误",
"data": null
}
```
| 错误码 | 错误信息 | 描述 |
|--------|----------|------|
| 400 | 参数错误 | 请求参数格式不正确 |
| 401 | 未授权 | 未提供有效的认证信息 |
| 403 | 禁止访问 | 没有权限访问该接口 |
| 500 | 服务器错误 | 服务器内部错误 |
## 接口示例
### 请求示例
```bash
curl -X GET "http://localhost:8080/integration/apilog/statistics?apiType=REST&status=SUCCESS&startTime=2026-01-01%2000:00:00&endTime=2026-01-31%2023:59:59&groupBy=apiType" \
-H "Authorization: Bearer your-token"
```
### 响应示例
**成功**:
```json
{
"code": 200,
"message": "操作成功",
"data": {
"success": true,
"statistics": {
"totalCount": 600,
"successCount": 580,
"failCount": 20,
"avgResponseTime": 120,
"groupedData": {
"REST": 600
}
}
}
}
```
**失败**:
```json
{
"code": 403,
"message": "没有权限访问该接口",
"data": null
}
```
## 错误处理
- **参数错误**: 当请求参数格式不正确时返回400错误码和相应的错误信息
- **未授权**: 当未提供有效的认证信息时返回401错误码
- **禁止访问**: 当用户没有权限访问该接口时返回403错误码
- **服务器错误**: 当服务器内部发生错误时返回500错误码和相应的错误信息
## 注意事项
- **权限要求**: 访问该接口需要具有 `integration:apilog:statistics` 权限
- **时间格式**: startTime 和 endTime 参数需要使用 `yyyy-MM-dd HH:mm:ss` 格式
- **分组维度**: groupBy 参数支持按 apiType、connectionClass、methodName、status 等维度进行分组
- **性能考虑**: 当查询时间范围较大时,可能会影响接口响应速度,建议合理设置时间范围
## 相关接口
- [查询API调用日志列表](/integration/apilog/list) - 查询API调用日志的详细列表
- [导出API调用日志列表](/integration/apilog/export) - 导出API调用日志列表
## 实现细节
- **实现类**: `DataiIntegrationApiCallLogController.java`
- **方法**: `getStatistics()`
- **服务调用**: 调用 `IDataiIntegrationApiCallLogService.getApiCallLogStatistics()` 方法获取统计数据
- **参数处理**: 使用 `@DateTimeFormat` 注解对日期参数进行格式化
- **权限控制**: 使用 `@PreAuthorize` 注解进行权限控制
## 测试信息
### 测试环境
- **环境**: 开发环境
- **版本**: v1.0.0
### 测试用例
| 测试场景 | 输入参数 | 预期结果 | 实际结果 | 状态 |
|----------|----------|----------|----------|------|
| 基本统计 | 无参数 | 返回所有API调用的统计数据 | 返回所有API调用的统计数据 | 通过 |
| 按API类型统计 | apiType=REST | 返回REST类型API的统计数据 | 返回REST类型API的统计数据 | 通过 |
| 按状态统计 | status=SUCCESS | 返回成功状态的API调用统计数据 | 返回成功状态的API调用统计数据 | 通过 |
| 按时间范围统计 | startTime=2026-01-01 00:00:00&endTime=2026-01-31 23:59:59 | 返回指定时间范围内的API调用统计数据 | 返回指定时间范围内的API调用统计数据 | 通过 |
| 分组统计 | groupBy=apiType | 返回按API类型分组的统计数据 | 返回按API类型分组的统计数据 | 通过 |
| 权限测试 | 无权限 | 返回403错误 | 返回403错误 | 通过 |