Enhance authentication flow by implementing ProtectedRoute component across various pages, ensuring users are redirected based on their authentication status. Update login page to support Google sign-in and handle redirect URLs after login. Modify analytics and links pages to include loading indicators and protected access. Update next.config.ts to enable middleware for edge functions.
This commit is contained in:
126
app/api/activities/readme.md
Normal file
126
app/api/activities/readme.md
Normal file
@@ -0,0 +1,126 @@
|
||||
# 数据分析活动接口说明
|
||||
|
||||
## 接口概述
|
||||
`/api/activities` 端点提供了访问和导出分析事件数据的功能,可用于查询短链接的点击和访问记录。
|
||||
|
||||
## 请求方式
|
||||
- HTTP 方法: **GET**
|
||||
- URL: `/api/activities`
|
||||
|
||||
## 请求参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
|-------|------|------|------|
|
||||
| slug | string | 否* | 短链接标识符 |
|
||||
| domain | string | 否* | 短链接域名 |
|
||||
| format | string | 否 | 响应格式,可选值: `csv`(纯文本显示);不传则默认返回JSON |
|
||||
| startTime | string | 否* | 起始时间,ISO格式 |
|
||||
| endTime | string | 否* | 结束时间,ISO格式 |
|
||||
| page | number | 否 | 当前页码,默认为1 |
|
||||
| pageSize | number | 否 | 每页记录数,默认为50 |
|
||||
|
||||
_*注:必须提供 (slug和domain) 或 (startTime和endTime) 中的至少一组过滤条件_
|
||||
|
||||
## 响应格式
|
||||
|
||||
### JSON格式(默认)
|
||||
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"data": [
|
||||
{
|
||||
"id": "事件ID",
|
||||
"type": "事件类型",
|
||||
"time": "事件时间",
|
||||
"visitor": {
|
||||
"id": "访问者ID",
|
||||
"ipAddress": "IP地址",
|
||||
"userAgent": "浏览器用户代理",
|
||||
"referrer": "来源页面"
|
||||
},
|
||||
"device": {
|
||||
"type": "设备类型",
|
||||
"browser": "浏览器",
|
||||
"os": "操作系统"
|
||||
},
|
||||
"location": {
|
||||
"country": "国家",
|
||||
"city": "城市"
|
||||
},
|
||||
"link": {
|
||||
"id": "链接ID",
|
||||
"slug": "短链标识",
|
||||
"originalUrl": "原始链接",
|
||||
"label": "链接标签",
|
||||
"tags": ["标签1", "标签2"]
|
||||
},
|
||||
"utm": {
|
||||
"source": "来源",
|
||||
"medium": "媒介",
|
||||
"campaign": "活动",
|
||||
"term": "关键词",
|
||||
"content": "内容"
|
||||
}
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"total": 总记录数,
|
||||
"page": 当前页码,
|
||||
"pageSize": 每页记录数
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### CSV格式
|
||||
|
||||
当使用 `format=csv` 参数时,接口将返回以下列的CSV纯文本:
|
||||
|
||||
```
|
||||
time,activity,campaign,clientId,originPath
|
||||
2023-01-01 12:34:56,click,spring_sale,abc123,https://example.com/path?utm_campaign=spring_sale
|
||||
```
|
||||
|
||||
列说明:
|
||||
- `time`: 事件发生时间
|
||||
- `activity`: 事件类型(如点击、访问等)
|
||||
- `campaign`: 营销活动标识(从URL中的utm_campaign提取)
|
||||
- `clientId`: 访问者标识的前半部分
|
||||
- `originPath`: 原始请求路径或引荐URL
|
||||
|
||||
## 使用示例
|
||||
|
||||
### 基本查询(JSON)
|
||||
```
|
||||
GET /api/activities?slug=0326recap10&domain=example.com
|
||||
```
|
||||
|
||||
### 导出CSV
|
||||
```
|
||||
GET /api/activities?slug=0326recap10&format=csv
|
||||
```
|
||||
|
||||
### 按日期范围过滤
|
||||
```
|
||||
GET /api/activities?startTime=2023-03-01T00:00:00Z&endTime=2023-03-31T23:59:59Z
|
||||
```
|
||||
|
||||
### 分页
|
||||
```
|
||||
GET /api/activities?slug=0326recap10&page=2&pageSize=100
|
||||
```
|
||||
|
||||
## 错误响应
|
||||
|
||||
当请求参数不正确或服务器发生错误时,返回以下格式:
|
||||
|
||||
```json
|
||||
{
|
||||
"success": false,
|
||||
"error": "错误描述信息"
|
||||
}
|
||||
```
|
||||
|
||||
常见错误代码:
|
||||
- 400: 参数错误,例如缺少必要的过滤条件
|
||||
- 500: 服务器内部错误
|
||||
Reference in New Issue
Block a user