daren/apps/template/template.md
2025-05-26 11:01:01 +08:00

476 lines
15 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Template模块API文档
## 概述
Template (模板) 模块用于管理各种模板内容,支持按任务类型、平台、合作模式和服务类型等分类管理模板。主要包括模板分类和模板两大类接口。
## 通用响应格式
所有API响应都遵循以下统一的JSON格式
```json
{
"code": 200, // 状态码200表示成功其他值表示错误
"message": "成功", // 响应消息
"data": {} // 响应数据可能是对象、数组或null
}
```
## 分页响应格式
使用分页的接口将返回以下格式:
```json
{
"code": 200,
"message": "获取数据成功",
"data": {
"count": 100, // 总记录数
"next": "下一页URL或null", // 下一页链接
"previous": "上一页URL或null", // 上一页链接
"results": [], // 当前页的数据
"total_pages": 10, // 总页数
"current_page": 1 // 当前页码
}
}
```
## 认证方式
所有接口都需要使用自定义Token认证请在HTTP请求头中添加以下字段
```
Authorization: Token your_token_here
```
## 1. 模板分类管理 (Template Categories)
模板分类用于对模板进行分类和归类,便于管理和检索。
### 1.1 获取模板分类列表
- **URL**: `/categories/`
- **方法**: `GET`
- **描述**: 获取所有模板分类的列表
- **请求参数**:
- `page`: 页码默认为1
- `page_size`: 每页记录数默认为10最大为100
- **响应数据**:
```json
{
"code": 200,
"message": "获取模板分类列表成功",
"data": {
"count": 5,
"next": null,
"previous": null,
"results": [
{
"id": 1,
"name": "营销模板",
"description": "用于营销推广的模板集合",
"created_at": "2023-06-01T10:00:00Z",
"updated_at": "2023-06-01T10:00:00Z"
}
],
"total_pages": 1,
"current_page": 1
}
}
```
### 1.2 创建模板分类
- **URL**: `/categories/`
- **方法**: `POST`
- **描述**: 创建一个新的模板分类
- **请求参数**:
```json
{
"name": "营销模板", // 必填,分类名称
"description": "用于营销推广的模板集合" // 可选,分类描述
}
```
- **响应数据**:
```json
{
"code": 201,
"message": "模板分类创建成功",
"data": {
"id": 1,
"name": "营销模板",
"description": "用于营销推广的模板集合",
"created_at": "2023-06-01T10:00:00Z",
"updated_at": "2023-06-01T10:00:00Z"
}
}
```
### 1.3 获取模板分类详情
- **URL**: `/categories/{id}/`
- **方法**: `GET`
- **描述**: 获取指定ID的模板分类详情
- **请求参数**: 无
- **响应数据**:
```json
{
"code": 200,
"message": "获取模板分类详情成功",
"data": {
"id": 1,
"name": "营销模板",
"description": "用于营销推广的模板集合",
"created_at": "2023-06-01T10:00:00Z",
"updated_at": "2023-06-01T10:00:00Z"
}
}
```
### 1.4 更新模板分类
- **URL**: `/categories/{id}/`
- **方法**: `PUT`/`PATCH`
- **描述**: 更新指定ID的模板分类信息
- **请求参数**: 同创建模板分类
- **响应数据**:
```json
{
"code": 200,
"message": "模板分类更新成功",
"data": {
"id": 1,
"name": "更新后的营销模板",
"description": "这是更新后的描述",
"created_at": "2023-06-01T10:00:00Z",
"updated_at": "2023-06-02T10:00:00Z"
}
}
```
### 1.5 删除模板分类
- **URL**: `/categories/{id}/`
- **方法**: `DELETE`
- **描述**: 删除指定ID的模板分类
- **请求参数**: 无
- **响应数据**:
```json
{
"code": 200,
"message": "模板分类删除成功",
"data": null
}
```
## 2. 模板管理 (Templates)
模板是系统中的核心内容,可以按各种条件进行分类和检索。
### 2.1 获取模板列表
- **URL**: `/`
- **方法**: `GET`
- **描述**: 获取所有模板的列表,支持多种过滤和排序
- **请求参数**:
- `page`: 页码默认为1
- `page_size`: 每页记录数默认为10最大为100
- `title`: 按标题模糊搜索
- `content`: 按内容模糊搜索
- `mission`: 按任务类型筛选可选值initial_contact, follow_up, negotiation, closing, other
- `platform`: 按平台筛选可选值tiktok, instagram, youtube, facebook, twitter, other
- `collaboration_type`: 按合作模式筛选可选值paid_promotion, affiliate, sponsored_content, brand_ambassador, other
- `service`: 按服务类型筛选可选值voice, text, video, image, other
- `category`: 按分类ID筛选
- `category_name`: 按分类名称模糊搜索
- `is_public`: 按是否公开筛选true或false
- `created_after`: 按创建时间筛选格式YYYY-MM-DDThh:mm:ssZ
- `created_before`: 按创建时间筛选格式YYYY-MM-DDThh:mm:ssZ
- `ordering`: 排序字段可选值created_at, -created_at, updated_at, -updated_at, title, -title
- **响应数据**:
```json
{
"code": 200,
"message": "获取模板列表成功",
"data": {
"count": 20,
"next": null,
"previous": null,
"results": [
{
"id": 1,
"title": "TikTok初次合作邀请",
"preview": "亲爱的[创作者名称],我们是[品牌名称],我们注意到您的内容非常精彩,希望能与您合作...",
"category_name": "营销模板",
"mission": "initial_contact",
"mission_display": "初步联系",
"platform": "tiktok",
"platform_display": "TikTok",
"service": "text",
"service_display": "文本",
"collaboration_type": "paid_promotion",
"collaboration_type_display": "付费推广",
"is_public": true,
"created_at": "2023-06-01T10:00:00Z",
"updated_at": "2023-06-01T10:00:00Z"
}
],
"total_pages": 2,
"current_page": 1
}
}
```
### 2.2 创建模板
- **URL**: `/`
- **方法**: `POST`
- **描述**: 创建一个新的模板
- **请求参数**:
```json
{
"title": "TikTok初次合作邀请", // 必填,模板标题
"content": "亲爱的[创作者名称],我们是[品牌名称],我们注意到您的内容非常精彩,希望能与您合作...", // 必填,模板内容
"category": 1, // 必填模板分类ID
"mission": "initial_contact", // 可选任务类型默认为initial_contact
"platform": "tiktok", // 可选平台默认为tiktok
"collaboration_type": "paid_promotion", // 可选合作模式默认为paid_promotion
"service": "text", // 可选服务类型默认为text
"is_public": true // 可选是否公开默认为true
}
```
- **响应数据**:
```json
{
"code": 201,
"message": "模板创建成功",
"data": {
"id": 1,
"title": "TikTok初次合作邀请",
"content": "亲爱的[创作者名称],我们是[品牌名称],我们注意到您的内容非常精彩,希望能与您合作...",
"category": 1,
"mission": "initial_contact",
"platform": "tiktok",
"service": "text",
"collaboration_type": "paid_promotion",
"is_public": true
}
}
```
### 2.3 获取模板详情
- **URL**: `/{id}/`
- **方法**: `GET`
- **描述**: 获取指定ID的模板详情
- **请求参数**: 无
- **响应数据**:
```json
{
"code": 200,
"message": "获取模板详情成功",
"data": {
"id": 1,
"title": "TikTok初次合作邀请",
"content": "亲爱的[创作者名称],我们是[品牌名称],我们注意到您的内容非常精彩,希望能与您合作...",
"preview": "亲爱的[创作者名称],我们是[品牌名称],我们注意到您的内容非常精彩,希望能与您合作...",
"category": {
"id": 1,
"name": "营销模板",
"description": "用于营销推广的模板集合",
"created_at": "2023-06-01T10:00:00Z",
"updated_at": "2023-06-01T10:00:00Z"
},
"mission": "initial_contact",
"mission_display": "初步联系",
"platform": "tiktok",
"platform_display": "TikTok",
"service": "text",
"service_display": "文本",
"collaboration_type": "paid_promotion",
"collaboration_type_display": "付费推广",
"is_public": true,
"created_at": "2023-06-01T10:00:00Z",
"updated_at": "2023-06-01T10:00:00Z"
}
}
```
### 2.4 更新模板
- **URL**: `/{id}/`
- **方法**: `PUT`/`PATCH`
- **描述**: 更新指定ID的模板信息
- **请求参数**: 同创建模板
- **响应数据**:
```json
{
"code": 200,
"message": "模板更新成功",
"data": {
"id": 1,
"title": "更新后的TikTok合作邀请",
"content": "更新后的内容...",
"category": 1,
"mission": "follow_up",
"platform": "tiktok",
"service": "text",
"collaboration_type": "paid_promotion",
"is_public": true
}
}
```
### 2.5 删除模板
- **URL**: `/{id}/`
- **方法**: `DELETE`
- **描述**: 删除指定ID的模板
- **请求参数**: 无
- **响应数据**:
```json
{
"code": 200,
"message": "模板删除成功",
"data": null
}
```
### 2.6 获取我的模板
- **URL**: `/mine/`
- **方法**: `GET`
- **描述**: 获取所有模板,实际上与获取模板列表功能相同
- **请求参数**: 同获取模板列表
- **响应数据**: 同获取模板列表
### 2.7 获取公开模板
- **URL**: `/public/`
- **方法**: `GET`
- **描述**: 获取所有公开的模板
- **请求参数**: 同获取模板列表
- **响应数据**: 同获取模板列表但只返回is_public=true的模板
### 2.8 按任务类型获取模板
- **URL**: `/by_mission/`
- **方法**: `GET`
- **描述**: 按任务类型获取模板
- **请求参数**:
- `mission`: 必填任务类型可选值initial_contact, follow_up, negotiation, closing, other
- 其他参数同获取模板列表
- **响应数据**: 同获取模板列表,但只返回指定任务类型的模板
### 2.9 按平台获取模板
- **URL**: `/by_platform/`
- **方法**: `GET`
- **描述**: 按平台获取模板
- **请求参数**:
- `platform`: 必填平台可选值tiktok, instagram, youtube, facebook, twitter, other
- 其他参数同获取模板列表
- **响应数据**: 同获取模板列表,但只返回指定平台的模板
### 2.10 按合作模式获取模板
- **URL**: `/by_collaboration/`
- **方法**: `GET`
- **描述**: 按合作模式获取模板
- **请求参数**:
- `collaboration_type`: 必填合作模式可选值paid_promotion, affiliate, sponsored_content, brand_ambassador, other
- 其他参数同获取模板列表
- **响应数据**: 同获取模板列表,但只返回指定合作模式的模板
### 2.11 按服务类型获取模板
- **URL**: `/by_service/`
- **方法**: `GET`
- **描述**: 按服务类型获取模板
- **请求参数**:
- `service`: 必填服务类型可选值voice, text, video, image, other
- 其他参数同获取模板列表
- **响应数据**: 同获取模板列表,但只返回指定服务类型的模板
## 3. 模板字段说明
### 3.1 模板分类字段
| 字段名 | 类型 | 说明 |
|-------------|-----------|-------------|
| id | 整数 | 分类ID |
| name | 字符串 | 分类名称 |
| description | 字符串 | 分类描述 |
| created_at | 日期时间 | 创建时间 |
| updated_at | 日期时间 | 更新时间 |
### 3.2 模板字段
| 字段名 | 类型 | 说明 |
|----------------------------|-----------|------------------------------|
| id | 整数 | 模板ID |
| title | 字符串 | 模板标题 |
| content | 字符串 | 模板内容 |
| preview | 字符串 | 内容预览,自动生成 |
| category | 对象/整数 | 模板分类对象或ID |
| category_name | 字符串 | 分类名称 |
| mission | 字符串 | 任务类型代码 |
| mission_display | 字符串 | 任务类型显示名称 |
| platform | 字符串 | 平台代码 |
| platform_display | 字符串 | 平台显示名称 |
| service | 字符串 | 服务类型代码 |
| service_display | 字符串 | 服务类型显示名称 |
| collaboration_type | 字符串 | 合作模式代码 |
| collaboration_type_display | 字符串 | 合作模式显示名称 |
| is_public | 布尔值 | 是否公开 |
| created_at | 日期时间 | 创建时间 |
| updated_at | 日期时间 | 更新时间 |
## 4. 使用示例
### 4.1 创建一个新的模板分类
```http
POST /api/categories/
Content-Type: application/json
Authorization: Token your_token_here
{
"name": "电商推广模板",
"description": "专门用于电商产品推广的各类模板"
}
```
### 4.2 创建一个新的TikTok初次联系模板
```http
POST /api/
Content-Type: application/json
Authorization: Token your_token_here
{
"title": "TikTok品牌合作初次邀请",
"content": "亲爱的[创作者名称]\n\n我是[品牌名称]的[您的姓名]。我们非常欣赏您在TikTok上分享的[内容类型]内容,特别是您关于[具体内容]的视频,展现了很高的创意和专业性。\n\n我们希望能与您合作进行一次付费推广活动。我们的产品是[产品描述],我们认为这与您的内容风格和受众非常匹配。\n\n如果您有兴趣我们可以提供[报酬说明]的报酬,以及[其他福利]。希望能得到您的回复,进一步讨论合作细节。\n\n期待您的回复\n\n谢谢\n[您的姓名]\n[品牌名称]",
"category": 1,
"mission": "initial_contact",
"platform": "tiktok",
"collaboration_type": "paid_promotion",
"service": "text",
"is_public": true
}
```
### 4.3 查找所有TikTok平台的文本类模板
```http
GET /api/?platform=tiktok&service=text
Authorization: Token your_token_here
```
### 4.4 按任务类型查询模板
```http
GET /api/by_mission/?mission=follow_up
Authorization: Token your_token_here
```