15 KiB
15 KiB
Template模块API文档
概述
Template (模板) 模块用于管理各种模板内容,支持按任务类型、平台、合作模式和服务类型等分类管理模板。主要包括模板分类和模板两大类接口。
通用响应格式
所有API响应都遵循以下统一的JSON格式:
{
"code": 200, // 状态码,200表示成功,其他值表示错误
"message": "成功", // 响应消息
"data": {} // 响应数据,可能是对象、数组或null
}
分页响应格式
使用分页的接口将返回以下格式:
{
"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
: 页码,默认为1page_size
: 每页记录数,默认为10,最大为100
- 响应数据:
{ "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
- 描述: 创建一个新的模板分类
- 请求参数:
{ "name": "营销模板", // 必填,分类名称 "description": "用于营销推广的模板集合" // 可选,分类描述 }
- 响应数据:
{ "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的模板分类详情
- 请求参数: 无
- 响应数据:
{ "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的模板分类信息
- 请求参数: 同创建模板分类
- 响应数据:
{ "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的模板分类
- 请求参数: 无
- 响应数据:
{ "code": 200, "message": "模板分类删除成功", "data": null }
2. 模板管理 (Templates)
模板是系统中的核心内容,可以按各种条件进行分类和检索。
2.1 获取模板列表
- URL:
/
- 方法:
GET
- 描述: 获取所有模板的列表,支持多种过滤和排序
- 请求参数:
page
: 页码,默认为1page_size
: 每页记录数,默认为10,最大为100title
: 按标题模糊搜索content
: 按内容模糊搜索mission
: 按任务类型筛选,可选值:initial_contact, follow_up, negotiation, closing, otherplatform
: 按平台筛选,可选值:tiktok, instagram, youtube, facebook, twitter, othercollaboration_type
: 按合作模式筛选,可选值:paid_promotion, affiliate, sponsored_content, brand_ambassador, otherservice
: 按服务类型筛选,可选值:voice, text, video, image, othercategory
: 按分类ID筛选category_name
: 按分类名称模糊搜索is_public
: 按是否公开筛选,true或falsecreated_after
: 按创建时间筛选,格式:YYYY-MM-DDThh:mm:ssZcreated_before
: 按创建时间筛选,格式:YYYY-MM-DDThh:mm:ssZordering
: 排序字段,可选值:created_at, -created_at, updated_at, -updated_at, title, -title
- 响应数据:
{ "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
- 描述: 创建一个新的模板
- 请求参数:
{ "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 }
- 响应数据:
{ "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的模板详情
- 请求参数: 无
- 响应数据:
{ "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的模板信息
- 请求参数: 同创建模板
- 响应数据:
{ "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的模板
- 请求参数: 无
- 响应数据:
{ "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 创建一个新的模板分类
POST /api/categories/
Content-Type: application/json
Authorization: Token your_token_here
{
"name": "电商推广模板",
"description": "专门用于电商产品推广的各类模板"
}
4.2 创建一个新的TikTok初次联系模板
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平台的文本类模板
GET /api/?platform=tiktok&service=text
Authorization: Token your_token_here
4.4 按任务类型查询模板
GET /api/by_mission/?mission=follow_up
Authorization: Token your_token_here