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

15 KiB
Raw Blame History

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: 页码默认为1
    • page_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: 页码默认为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
  • 响应数据:
    {
      "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