这是合并 API 请求的仪表板报告的 SQL 版本。
本报告按日期显示 API 使用情况统计信息,跟踪常规 API 请求和用户 API 请求。本报告有助于您随着时间的推移监控 Discourse 实例上的 API 使用模式。它区分了常规 API 请求和用户 API 请求,分别显示两者以及总计。
数据来自 application_requests 表,该表跟踪系统中的不同请求类型。对于 API 使用情况,我们关注请求类型 11(常规 API)和 12(用户 API)。
-- [params]
-- date :start_date = 2023-01-01
-- date :end_date = 2025-12-31
SELECT
ar.date,
-- API requests
SUM(CASE WHEN ar.req_type = 11 THEN ar.count ELSE 0 END) AS api,
SUM(CASE WHEN ar.req_type = 12 THEN ar.count ELSE 0 END) AS user_api,
-- Total API requests
SUM(CASE WHEN ar.req_type IN (11, 12) THEN ar.count ELSE 0 END) AS total_api_requests
FROM
application_requests ar
WHERE
ar.date BETWEEN :start_date AND :end_date
GROUP BY
ar.date
ORDER BY
ar.date DESC
参数:
- 该查询接受两个参数
:start_date和:end_date,它们定义了报告的日期范围。两个日期参数都接受YYYY-MM-DD格式的日期。
结果
- date:请求计数的日期
- api:常规 API 请求计数(req_type = 11)
- user_api:用户 API 请求计数(req_type = 12)
- total_api_requests:所有 API 请求的总和
常规 API 请求和用户 API 请求之间有什么区别?
- 常规 API 请求(req_type = 11):这些是系统发出的不需要用户身份验证的 API 调用。它们包括公共 API 端点、系统集成或访问公共数据的第三方服务。
- 用户 API 请求(req_type = 12):这些是使用用户身份验证发出的 API 调用,通常代表代表特定用户执行的操作,并且需要使用 API 密钥。
示例结果
| date | api | user_api | total_api_requests |
|---|---|---|---|
| 2023-09-15 | 34,582 | 7,249 | 41,831 |
| 2023-09-14 | 32,104 | 6,893 | 38,997 |
| 2023-09-13 | 33,756 | 7,122 | 40,878 |
| 2023-09-12 | 35,122 | 8,562 | 43,684 |
| 2023-09-11 | 36,475 | 9,234 | 45,709 |
| 2023-09-10 | 12,563 | 3,298 | 15,861 |
| 2023-09-09 | 10,782 | 2,982 | 13,764 |
| 2023-09-08 | 33,892 | 7,456 | 41,348 |
| 2023-09-07 | 31,765 | 7,120 | 38,885 |
| 2023-09-06 | 32,451 | 7,321 | 39,772 |