177 lines
5.4 KiB
Markdown
177 lines
5.4 KiB
Markdown
|
|
# 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错误 | 通过 |
|