daren/discovery.md

372 lines
8.6 KiB
Markdown
Raw Permalink Normal View History

2025-05-23 20:35:52 +08:00
# Discovery 模块 API 文档
本文档详细说明了 Discovery 模块的 API 接口包括请求方法、URL、参数说明和响应格式。
## 目录
1. [通用说明](#通用说明)
2. [创作者搜索会话接口](#创作者搜索会话接口)
3. [创作者发现接口](#创作者发现接口)
## 通用说明
### 基础URL
所有 API 的基础 URL 为:`http://127.0.0.1:8000/api/discovery/`
### 认证方式
所有 API 都需要 Token 认证。请在请求头中添加:
```
Authorization: Token <your_token>
```
### 响应格式
所有 API 返回的数据格式统一为:
```json
{
"code": 200, // 状态码200表示成功其他表示错误
"message": "成功", // 状态描述
"data": {} // 返回的数据可能是对象、数组或null
}
```
### 分页
列表接口支持分页,默认每页 20 条数据,最大每页 100 条。
分页参数:
- `page`: 页码从1开始
- `page_size`: 每页数量默认20
分页响应格式:
```json
{
"code": 200,
"message": "获取数据成功",
"data": {
"count": 100, // 总记录数
"next": "下一页URL", // 下一页链接如果没有则为null
"previous": "上一页URL", // 上一页链接如果没有则为null
"results": [] // 当前页数据
}
}
```
## 创作者搜索会话接口
搜索会话是指用户进行的一次创作者搜索,包含搜索结果和相关统计信息。
### 获取搜索会话列表
- **URL**: `/sessions/`
- **方法**: GET
- **描述**: 获取所有搜索会话的列表
- **参数**:
- 分页参数,参见[分页](#分页)部分
- **响应示例**:
```json
{
"code": 200,
"message": "获取搜索会话列表成功",
"data": [
{
"id": 1,
"session_number": 123,
"creator_count": 100,
"shoppable_creators": 26,
"avg_followers": 162.2,
"avg_gmv": 534.1,
"avg_video_views": 1.9,
"date_created": "2023-01-01"
}
]
}
```
### 获取搜索会话详情
- **URL**: `/sessions/{session_id}/`
- **方法**: GET
- **描述**: 获取指定ID的搜索会话详细信息包含搜索到的创作者列表
- **参数**:
- `session_id`: 会话ID (路径参数)
- **响应示例**:
```json
{
"code": 200,
"message": "获取搜索会话详情成功",
"data": {
"id": 1,
"session_number": 123,
"creator_count": 100,
"shoppable_creators": 26,
"avg_followers": 162.2,
"avg_gmv": 534.1,
"avg_video_views": 1.9,
"date_created": "2023-01-01",
"creators": [
// 创作者列表,见创作者数据结构
]
}
}
```
### 创建搜索会话
- **URL**: `/sessions/`
- **方法**: POST
- **描述**: 创建新的搜索会话
- **请求参数**:
```json
{
"session_number": 123,
"creator_count": 100,
"shoppable_creators": 26,
"avg_followers": 162.2,
"avg_gmv": 534.1,
"avg_video_views": 1.9,
"date_created": "2023-01-01"
}
```
- **响应示例**:
```json
{
"code": 200,
"message": "创建搜索会话成功",
"data": {
"id": 1,
"session_number": 123,
"creator_count": 100,
"shoppable_creators": 26,
"avg_followers": 162.2,
"avg_gmv": 534.1,
"avg_video_views": 1.9,
"date_created": "2023-01-01"
}
}
```
### 更新搜索会话
- **URL**: `/sessions/{session_id}/`
- **方法**: PUT/PATCH
- **描述**: 更新搜索会话信息
- **参数**:
- `session_id`: 会话ID (路径参数)
- 请求体包含要更新的字段
- **响应示例**:
```json
{
"code": 200,
"message": "更新搜索会话成功",
"data": {
// 更新后的会话信息
}
}
```
### 删除搜索会话
- **URL**: `/sessions/{session_id}/`
- **方法**: DELETE
- **描述**: 删除搜索会话
- **参数**:
- `session_id`: 会话ID (路径参数)
- **响应示例**:
```json
{
"code": 200,
"message": "删除搜索会话成功",
"data": null
}
```
### 获取会话创作者列表
- **URL**: `/sessions/{session_id}/results/`
- **方法**: GET
- **描述**: 获取指定会话的搜索结果(创作者列表)
- **参数**:
- `session_id`: 会话ID (路径参数)
- 分页参数,参见[分页](#分页)部分
- **响应示例**:
```json
{
"code": 200,
"message": "获取会话创作者列表成功",
"data": [
// 创作者列表,见创作者数据结构
]
}
```
## 创作者发现接口
### 获取创作者列表
- **URL**: `/creators/`
- **方法**: GET
- **描述**: 获取所有创作者的列表
- **参数**:
- 分页参数,参见[分页](#分页)部分
- **响应示例**:
```json
{
"code": 200,
"message": "获取创作者列表成功",
"data": [
{
"id": 1,
"name": "创作者名称",
"avatar": "头像URL",
"category": "Phones & Electronics",
"ecommerce_level": "L2",
"exposure_level": "KOC-1",
"followers": 162.2,
"gmv": 534.1,
"items_sold": 18.1,
"avg_video_views": 1.9,
"has_ecommerce": true,
"tiktok_url": "抖音链接",
"session": 1
}
]
}
```
### 获取创作者详情
- **URL**: `/creators/{creator_id}/`
- **方法**: GET
- **描述**: 获取指定ID的创作者详细信息
- **参数**:
- `creator_id`: 创作者ID (路径参数)
- **响应示例**:
```json
{
"code": 200,
"message": "获取创作者详情成功",
"data": {
"id": 1,
"name": "创作者名称",
"avatar": "头像URL",
"category": "Phones & Electronics",
"ecommerce_level": "L2",
"exposure_level": "KOC-1",
"followers": 162.2,
"gmv": 534.1,
"items_sold": 18.1,
"avg_video_views": 1.9,
"has_ecommerce": true,
"tiktok_url": "抖音链接",
"session": 1
}
}
```
### 搜索创作者
- **URL**: `/creators/search/`
- **方法**: POST
- **描述**: 根据条件搜索创作者并创建新的搜索会话
- **请求参数**:
```json
{
"query": "搜索关键词",
"category": "Phones & Electronics", // 可选,见类别列表
"ecommerce_level": "L2", // 可选,见电商等级列表
"exposure_level": "KOC-1" // 可选,见曝光等级列表
}
```
- **响应示例**:
```json
{
"code": 200,
"message": "搜索创作者成功",
"data": {
"id": 1,
"session_number": 123,
"creator_count": 5,
"shoppable_creators": 3,
"avg_followers": 162.2,
"avg_gmv": 534.1,
"avg_video_views": 1.9,
"date_created": "2023-01-01",
"creators": [
// 创作者列表,见创作者数据结构
]
}
}
```
## 数据结构
### 创作者类别
- `Phones & Electronics`: 手机与电子产品
- `Womenswear & Underwear`: 女装与内衣
- `Sports & Outdoor`: 运动与户外
- `Food & Beverage`: 食品与饮料
- `Health`: 健康
- `Kitchenware`: 厨具
- `Furniture`: 家具
- `Shoes`: 鞋类
- `Home Supplies`: 家居用品
### 电商等级
- `L1`: Level 1
- `L2`: Level 2
- `L3`: Level 3
- `L4`: Level 4
- `L5`: Level 5
- `New tag`: 新标签
### 曝光等级
- `KOC-1`: Key Opinion Consumer 1级
- `KOC-2`: Key Opinion Consumer 2级
- `KOL-2`: Key Opinion Leader 2级
- `KOL-3`: Key Opinion Leader 3级
- `New tag`: 新标签
### 创作者数据结构
```json
{
"id": 1,
"name": "创作者名称",
"avatar": "头像URL",
"category": "Phones & Electronics",
"ecommerce_level": "L2",
"exposure_level": "KOC-1",
"followers": 162.2, // 单位K (千)
"gmv": 534.1, // 单位K (千)
"items_sold": 18.1, // 单位K (千)
"avg_video_views": 1.9, // 单位M (百万)
"has_ecommerce": true, // 是否有电商能力
"tiktok_url": "抖音链接",
"session": 1 // 所属搜索会话ID
}
```
### 搜索会话数据结构
```json
{
"id": 1,
"session_number": 123, // 会话编号
"creator_count": 100, // 创作者数量
"shoppable_creators": 26, // 可购物创作者数量
"avg_followers": 162.2, // 平均粉丝数 (K)
"avg_gmv": 534.1, // 平均GMV (K)
"avg_video_views": 1.9, // 平均视频观看量 (M)
"date_created": "2023-01-01" // 创建日期
}
```