datai/datai-scenes/datai-scene-salesforce/docs/api-docs/integration/DataiIntegrationApiCallLogController/0001-api-call-log-statistics.md

177 lines
5.4 KiB
Markdown
Raw Normal View History

# 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` 注解进行权限控制
## 测试信息
### 测试环境
- **环境**: 开发环境
- **版本**: v3.8.9-G
### 测试用例
| 测试场景 | 输入参数 | 预期结果 | 实际结果 | 状态 |
|----------|----------|----------|----------|------|
| 基本统计 | 无参数 | 返回所有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错误 | 通过 |