daren/template.md
2025-05-23 20:35:52 +08:00

18 KiB
Raw Permalink Blame History

模板模块 API 文档

简介

模板模块(template)提供了一系列API用于管理和使用各种消息、内容模板支持按分类、平台、任务类型等维度管理模板。所有接口均需要身份验证使用CustomTokenAuthentication进行认证。

本文档详细说明了模板模块中所有接口的使用方法、请求参数和响应结果。

目录

模板管理

模板模块使用REST风格的API通过TemplateViewSet提供了以下功能

1. 获取模板列表

接口说明:获取所有模板的列表

请求地址GET /template/

查询参数

参数名 类型 必填 说明
page int 分页页码默认1
page_size int 每页显示数量默认10最大100
title string 按标题内容过滤(模糊匹配)
content string 按正文内容过滤(模糊匹配)
mission string 按任务类型过滤
platform string 按平台过滤
collaboration_type string 按合作模式过滤
service string 按服务类型过滤
category int 按分类ID过滤
category_name string 按分类名称过滤(模糊匹配)
is_public boolean 按是否公开过滤
created_after datetime 按创建日期过滤(早于指定日期)
created_before datetime 按创建日期过滤(晚于指定日期)
search string 搜索标题和内容
ordering string 排序字段,例如:-created_at表示按创建时间降序排序

响应结果

{
  "code": 200,
  "message": "获取模板列表成功",
  "data": {
    "count": 100,
    "next": "http://example.com/template/?page=2",
    "previous": null,
    "results": [
      {
        "id": 1,
        "title": "模板标题",
        "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-01-01T00:00:00Z",
        "updated_at": "2023-01-01T00:00:00Z"
      }
    ],
    "total_pages": 10,
    "current_page": 1
  }
}

2. 获取模板详情

接口说明:获取单个模板的详细信息

请求地址GET /template/{id}/

路径参数

参数名 类型 必填 说明
id int 模板ID

响应结果

{
  "code": 200,
  "message": "获取模板详情成功",
  "data": {
    "id": 1,
    "title": "模板标题",
    "content": "模板完整内容...",
    "preview": "模板内容预览...",
    "category": {
      "id": 1,
      "name": "分类名称",
      "description": "分类描述",
      "created_at": "2023-01-01T00:00:00Z",
      "updated_at": "2023-01-01T00: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-01-01T00:00:00Z",
    "updated_at": "2023-01-01T00:00:00Z"
  }
}

3. 创建模板

接口说明:创建新的模板

请求地址POST /template/

请求参数

{
  "title": "模板标题",
  "content": "模板完整内容...",
  "category": 1,
  "mission": "initial_contact",
  "platform": "tiktok",
  "service": "text",
  "collaboration_type": "paid_promotion",
  "is_public": true
}

参数说明

参数名 类型 必填 说明
title string 模板标题
content string 模板内容
category int 分类ID
mission string 任务类型,默认"initial_contact",可选值: initial_contact(初步联系), follow_up(跟进), negotiation(谈判), closing(成交), other(其他)
platform string 平台,默认"tiktok",可选值: tiktok, instagram, youtube, facebook, twitter, other
service string 服务类型,默认"text",可选值: voice(声优-交谈), text(文本), video(视频), image(图片), other(其他)
collaboration_type string 合作模式,默认"paid_promotion",可选值: paid_promotion(付费推广), affiliate(联盟营销), sponsored_content(赞助内容), brand_ambassador(品牌大使), other(其他)
is_public boolean 是否公开默认true

响应结果

{
  "code": 201,
  "message": "模板创建成功",
  "data": {
    "id": 1,
    "title": "模板标题",
    "content": "模板完整内容...",
    "category": 1,
    "mission": "initial_contact",
    "platform": "tiktok",
    "service": "text",
    "collaboration_type": "paid_promotion",
    "is_public": true
  }
}

4. 更新模板

接口说明:更新已有的模板

请求地址PUT /template/{id}/PATCH /template/{id}/

路径参数

参数名 类型 必填 说明
id int 模板ID

请求参数

  • PUT请求需要提供完整的模板信息
  • PATCH请求可以只提供需要更新的字段
{
  "title": "更新后的模板标题",
  "content": "更新后的模板内容...",
  "category": 2,
  "mission": "follow_up",
  "platform": "instagram",
  "service": "voice",
  "collaboration_type": "affiliate",
  "is_public": false
}

响应结果

{
  "code": 200,
  "message": "模板更新成功",
  "data": {
    "id": 1,
    "title": "更新后的模板标题",
    "content": "更新后的模板内容...",
    "category": 2,
    "mission": "follow_up",
    "platform": "instagram",
    "service": "voice",
    "collaboration_type": "affiliate",
    "is_public": false
  }
}

5. 删除模板

接口说明:删除指定的模板

请求地址DELETE /template/{id}/

路径参数

参数名 类型 必填 说明
id int 模板ID

响应结果

{
  "code": 200,
  "message": "模板删除成功",
  "data": null
}

6. 获取我的模板

接口说明:获取当前用户有权限查看的所有模板

请求地址GET /template/mine/

查询参数

参数名 类型 必填 说明
page int 分页页码默认1
page_size int 每页显示数量默认10最大100

响应结果

{
  "code": 200,
  "message": "获取模板成功",
  "data": {
    "count": 50,
    "next": "http://example.com/template/mine/?page=2",
    "previous": null,
    "results": [
      {
        "id": 1,
        "title": "模板标题",
        "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-01-01T00:00:00Z",
        "updated_at": "2023-01-01T00:00:00Z"
      }
    ],
    "total_pages": 5,
    "current_page": 1
  }
}

7. 获取公开模板

接口说明:获取所有公开的模板

请求地址GET /template/public/

查询参数

参数名 类型 必填 说明
page int 分页页码默认1
page_size int 每页显示数量默认10最大100

响应结果

{
  "code": 200,
  "message": "获取公开模板成功",
  "data": {
    "count": 30,
    "next": "http://example.com/template/public/?page=2",
    "previous": null,
    "results": [
      {
        "id": 1,
        "title": "模板标题",
        "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-01-01T00:00:00Z",
        "updated_at": "2023-01-01T00:00:00Z"
      }
    ],
    "total_pages": 3,
    "current_page": 1
  }
}

8. 按任务类型获取模板

接口说明:按任务类型筛选模板

请求地址GET /template/by_mission/

查询参数

参数名 类型 必填 说明
mission string 任务类型,可选值: initial_contact(初步联系), follow_up(跟进), negotiation(谈判), closing(成交), other(其他)
page int 分页页码默认1
page_size int 每页显示数量默认10最大100

响应结果

{
  "code": 200,
  "message": "按任务类型获取模板成功",
  "data": {
    "count": 20,
    "next": "http://example.com/template/by_mission/?mission=initial_contact&page=2",
    "previous": null,
    "results": [
      {
        "id": 1,
        "title": "初步联系模板",
        "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-01-01T00:00:00Z",
        "updated_at": "2023-01-01T00:00:00Z"
      }
    ],
    "total_pages": 2,
    "current_page": 1
  }
}

9. 按平台获取模板

接口说明:按平台筛选模板

请求地址GET /template/by_platform/

查询参数

参数名 类型 必填 说明
platform string 平台,可选值: tiktok, instagram, youtube, facebook, twitter, other
page int 分页页码默认1
page_size int 每页显示数量默认10最大100

响应结果

{
  "code": 200,
  "message": "按平台获取模板成功",
  "data": {
    "count": 15,
    "next": "http://example.com/template/by_platform/?platform=tiktok&page=2",
    "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-01-01T00:00:00Z",
        "updated_at": "2023-01-01T00:00:00Z"
      }
    ],
    "total_pages": 2,
    "current_page": 1
  }
}

10. 按合作方式获取模板

接口说明:按合作方式筛选模板

请求地址GET /template/by_collaboration/

查询参数

参数名 类型 必填 说明
collaboration string 合作模式,可选值: paid_promotion(付费推广), affiliate(联盟营销), sponsored_content(赞助内容), brand_ambassador(品牌大使), other(其他)
page int 分页页码默认1
page_size int 每页显示数量默认10最大100

响应结果

{
  "code": 200,
  "message": "按合作方式获取模板成功",
  "data": {
    "count": 25,
    "next": "http://example.com/template/by_collaboration/?collaboration=paid_promotion&page=2",
    "previous": null,
    "results": [
      {
        "id": 1,
        "title": "付费推广模板",
        "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-01-01T00:00:00Z",
        "updated_at": "2023-01-01T00:00:00Z"
      }
    ],
    "total_pages": 3,
    "current_page": 1
  }
}

11. 按服务类型获取模板

接口说明:按服务类型筛选模板

请求地址GET /template/by_service/

查询参数

参数名 类型 必填 说明
service string 服务类型,可选值: voice(声优-交谈), text(文本), video(视频), image(图片), other(其他)
page int 分页页码默认1
page_size int 每页显示数量默认10最大100

响应结果

{
  "code": 200,
  "message": "按服务类型获取模板成功",
  "data": {
    "count": 18,
    "next": "http://example.com/template/by_service/?service=text&page=2",
    "previous": null,
    "results": [
      {
        "id": 1,
        "title": "文本模板",
        "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-01-01T00:00:00Z",
        "updated_at": "2023-01-01T00:00:00Z"
      }
    ],
    "total_pages": 2,
    "current_page": 1
  }
}

模板分类管理

模板分类管理使用REST风格的API通过TemplateCategoryViewSet提供了以下功能

1. 获取分类列表

接口说明:获取所有模板分类的列表

请求地址GET /template/categories/

查询参数

参数名 类型 必填 说明
page int 分页页码默认1
page_size int 每页显示数量默认10最大100

响应结果

{
  "code": 200,
  "message": "获取模板分类列表成功",
  "data": {
    "count": 8,
    "next": null,
    "previous": null,
    "results": [
      {
        "id": 1,
        "name": "分类名称",
        "description": "分类描述",
        "created_at": "2023-01-01T00:00:00Z",
        "updated_at": "2023-01-01T00:00:00Z"
      }
    ],
    "total_pages": 1,
    "current_page": 1
  }
}

2. 获取分类详情

接口说明:获取单个模板分类的详细信息

请求地址GET /template/categories/{id}/

路径参数

参数名 类型 必填 说明
id int 分类ID

响应结果

{
  "code": 200,
  "message": "获取模板分类详情成功",
  "data": {
    "id": 1,
    "name": "分类名称",
    "description": "分类描述",
    "created_at": "2023-01-01T00:00:00Z",
    "updated_at": "2023-01-01T00:00:00Z"
  }
}

3. 创建分类

接口说明:创建新的模板分类

请求地址POST /template/categories/

请求参数

{
  "name": "新分类名称",
  "description": "新分类描述"
}

参数说明

参数名 类型 必填 说明
name string 分类名称
description string 分类描述

响应结果

{
  "code": 201,
  "message": "模板分类创建成功",
  "data": {
    "id": 2,
    "name": "新分类名称",
    "description": "新分类描述",
    "created_at": "2023-01-02T00:00:00Z",
    "updated_at": "2023-01-02T00:00:00Z"
  }
}

4. 更新分类

接口说明:更新已有的模板分类

请求地址PUT /template/categories/{id}/PATCH /template/categories/{id}/

路径参数

参数名 类型 必填 说明
id int 分类ID

请求参数

  • PUT请求需要提供完整的分类信息
  • PATCH请求可以只提供需要更新的字段
{
  "name": "更新后的分类名称",
  "description": "更新后的分类描述"
}

响应结果

{
  "code": 200,
  "message": "模板分类更新成功",
  "data": {
    "id": 2,
    "name": "更新后的分类名称",
    "description": "更新后的分类描述",
    "created_at": "2023-01-02T00:00:00Z",
    "updated_at": "2023-01-03T00:00:00Z"
  }
}

5. 删除分类

接口说明:删除指定的模板分类

请求地址DELETE /template/categories/{id}/

路径参数

参数名 类型 必填 说明
id int 分类ID

响应结果

{
  "code": 200,
  "message": "模板分类删除成功",
  "data": null
}