1 个稳定版本
1.1.0 | 2023 年 5 月 17 日 |
---|
#2321 in 网页编程
12KB
135 行
Rocket Analytics
一个轻量级的 API 分析解决方案,包括仪表板。
入门指南
1. 生成 API 密钥
访问 https://apianalytics.dev/generate 以一键生成您独特的 API 密钥。此密钥用于监控您的 API 服务器,应私下存储。它也是查看您的 API 分析仪表板和数据所必需的。
2. 将中间件添加到您的 API
将我们的轻量级中间件添加到您的 API。几乎所有的处理都由我们的服务器处理,因此对您的 API 性能的影响最小。
cargo add rocket-analytics
#[macro_use]
extern crate rocket;
use rocket::serde::json::Json;
use rocket_analytics::Analytics;
use serde::Serialize;
#[derive(Serialize)]
pub struct JsonData {
message: String,
}
#[get("/")]
fn root() -> Json<JsonData> {
let data = JsonData {
message: "Hello World".to_string(),
};
Json(data)
}
#[launch]
fn rocket() -> _ {
rocket::build()
.mount("/", routes![root])
.attach(Analytics::new(<API-KEY>))
}
3. 查看您的分析
您的 API 现在将记录并存储所有有效路由上的传入请求数据。您可以使用以下两种方法查看记录的数据
- 通过我们的仪表板上的可视化统计
- 直接通过我们的数据 API
您可以在多个 API 中使用相同的 API 密钥,但所有数据都将显示在同一个仪表板上。我们建议为每个需要分析的其他 API 服务器生成一个新的 API 密钥。
仪表板
访问 https://apianalytics.dev/dashboard 并粘贴您的 API 密钥以访问您的仪表板。
演示: https://apianalytics.dev/dashboard/demo
数据 API
所有请求的记录数据都可以通过我们的 REST API 访问。只需在头部设置您的 API 密钥为 https://apianalytics-server.com/api/data
并发送一个 GET 请求到 X-AUTH-TOKEN
。
Python
import requests
headers = {
"X-AUTH-TOKEN": <API-KEY>
}
response = requests.get("https://apianalytics-server.com/api/data", headers=headers)
print(response.json())
Node.js
fetch("https://apianalytics-server.com/api/data", {
headers: { "X-AUTH-TOKEN": <API-KEY> },
})
.then((response) => {
return response.json();
})
.then((data) => {
console.log(data);
});
cURL
curl --header "X-AUTH-TOKEN: <API-KEY>" https://apianalytics-server.com/api/data
参数
您可以通过在请求中提供 URL 参数来过滤您的数据。
date
- 指定请求发生的特定日期 (YYYY-MM-DD
)dateFrom
- 指定请求发生的日期范围的下限 (YYYY-MM-DD
)dateTo
- 指定请求发生的日期范围的上限(YYYY-MM-DD
)ipAddress
- 客户端的 IP 地址字符串status
- 响应的整数状态码location
- 客户端的两位位置代码
示例
curl --header "X-AUTH-TOKEN: <API-KEY>" https://apianalytics-server.com/api/data?dateFrom=2022-01-01&dateTo=2022-06-01&status=200
监控(即将推出)
即将推出可选的 API 监控功能。我们的服务器将定期ping您的 API 端点以监控正常运行时间和响应时间。您还可以订阅当您的端点出现问题时发送的电子邮件警报。
数据和安全性
所有数据都安全存储,符合欧盟通用数据保护条例(GDPR)。
对于您 API 的任何请求,记录的数据仅限于
- 客户端请求的路径
- 客户端 IP 地址
- 客户端操作系统
- 客户端浏览器
- 请求方法(GET、POST、PUT 等)
- 请求时间
- 状态码
- 响应时间
- API 主机名
- API 框架(FastAPI、Flask、Express 等)
收集的数据仅用于填充您的分析仪表板。所有存储的数据都是匿名的,API 密钥是您与已记录的请求数据之间的唯一联系。如果您丢失了 API 密钥,您将无法访问您的 API 分析。
数据删除
您可以在任何时候通过访问 https://apianalytics.dev/delete 并输入您的 API 密钥,删除与您的 API 密钥相关的所有存储数据。
API 密钥及其相关的 API 请求数据将在 6 个月不活动后删除。
贡献
欢迎贡献、问题和功能请求。
- Fork 它 (https://github.com/tom-draper/api-analytics)
- 创建您的功能分支 (
git checkout -b my-new-feature
) - 提交您的更改 (
git commit -am 'Add some feature'
) - 推送到分支 (
git push origin my-new-feature
) - 创建一个新的 Pull Request
依赖项
~21–57MB
~1M SLoC