Files
webUI/API接口文档.md
2025-05-29 14:25:13 +08:00

11 KiB
Raw Permalink Blame History

后端API接口文档

本文档整理了前端项目所需的所有后端API接口。

目录

  1. 用户认证接口
  2. 剧本管理接口
  3. 声音克隆接口
  4. 首页内容接口

用户认证接口

1.1 微信登录接口

接口说明: 用于小程序环境下,通过微信授权登录

请求URL: /api/login/wechat

请求方式: POST

请求参数:

参数名 类型 必填 说明
code string 微信登录返回的code
userInfo object 用户信息对象
userInfo.nickName string 用户昵称
userInfo.avatarUrl string 用户头像地址

响应结果:

{
  "code": 200,
  "msg": "登录成功",
  "data": {
    "token": "xxxxxxx",
    "openid": "xxxxxxx"
  }
}

1.2 用户信息获取接口

接口说明: 获取当前登录用户的详细信息

请求URL: /api/user/info

请求方式: GET

请求头:

参数名 类型 必填 说明
Authorization string 用户token格式为"Bearer {token}"

响应结果:

{
  "code": 200,
  "msg": "获取成功",
  "data": {
    "nickName": "用户昵称",
    "avatarUrl": "头像URL",
    "openid": "用户openid",
    "balance": 100,
    "vipStatus": true,
    "vipExpireDate": "2024-12-31"
  }
}

1.3 退出登录接口

接口说明: 用户退出登录

请求URL: /api/user/logout

请求方式: POST

请求头:

参数名 类型 必填 说明
Authorization string 用户token格式为"Bearer {token}"

响应结果:

{
  "code": 200,
  "msg": "退出成功",
  "data": null
}

剧本管理接口

2.1 保存剧本接口

接口说明: 创建或更新用户剧本

请求URL: /api/script/save

请求方式: POST

请求头:

参数名 类型 必填 说明
Authorization string 用户token格式为"Bearer {token}"

请求参数:

参数名 类型 必填 说明
id number 剧本ID不传则为新建
title string 剧本标题
type string 剧本类型
content string 剧本内容

响应结果:

{
  "code": 200,
  "msg": "保存成功",
  "data": {
    "id": 1,
    "title": "剧本标题",
    "type": "剧本类型",
    "createTime": "2023-01-01 12:00:00"
  }
}

2.2 获取剧本列表接口

接口说明: 获取用户创建的剧本列表

请求URL: /api/script/list

请求方式: GET

请求头:

参数名 类型 必填 说明
Authorization string 用户token格式为"Bearer {token}"

请求参数:

参数名 类型 必填 说明
page number 页码默认1
pageSize number 每页数量默认10

响应结果:

{
  "code": 200,
  "msg": "获取成功",
  "data": {
    "total": 100,
    "list": [
      {
        "id": 1,
        "title": "剧本标题1",
        "type": "台词腔",
        "createTime": "2023-01-01 12:00:00"
      },
      {
        "id": 2,
        "title": "剧本标题2",
        "type": "人妻",
        "createTime": "2023-01-02 12:00:00"
      }
    ]
  }
}

2.3 获取剧本详情接口

接口说明: 获取单个剧本的详细信息

请求URL: /api/script/detail

请求方式: GET

请求头:

参数名 类型 必填 说明
Authorization string 用户token格式为"Bearer {token}"

请求参数:

参数名 类型 必填 说明
id number 剧本ID

响应结果:

{
  "code": 200,
  "msg": "获取成功",
  "data": {
    "id": 1,
    "title": "剧本标题",
    "type": "剧本类型",
    "content": "剧本内容",
    "createTime": "2023-01-01 12:00:00",
    "updateTime": "2023-01-01 12:00:00"
  }
}

2.4 删除剧本接口

接口说明: 删除用户创建的剧本

请求URL: /api/script/delete

请求方式: POST

请求头:

参数名 类型 必填 说明
Authorization string 用户token格式为"Bearer {token}"

请求参数:

参数名 类型 必填 说明
id number 剧本ID

响应结果:

{
  "code": 200,
  "msg": "删除成功",
  "data": null
}

声音克隆接口

3.1 上传声音样本接口

接口说明: 上传用户录制的声音样本

请求URL: /api/voice/upload

请求方式: POST

请求头:

参数名 类型 必填 说明
Authorization string 用户token格式为"Bearer {token}"
Content-Type string multipart/form-data

请求参数:

参数名 类型 必填 说明
file file 声音文件支持mp3、wav格式
duration number 音频时长(秒)

响应结果:

{
  "code": 200,
  "msg": "上传成功",
  "data": {
    "sampleId": "sample123",
    "url": "https://example.com/samples/sample123.mp3",
    "duration": 25
  }
}

3.2 开始声音克隆接口

接口说明: 根据上传的样本开始声音克隆

请求URL: /api/voice/clone

请求方式: POST

请求头:

参数名 类型 必填 说明
Authorization string 用户token格式为"Bearer {token}"

请求参数:

参数名 类型 必填 说明
sampleIds array 样本ID数组
name string 克隆声音名称

响应结果:

{
  "code": 200,
  "msg": "克隆任务已提交",
  "data": {
    "taskId": "task123",
    "status": "processing",
    "estimatedTime": 300
  }
}

3.3 获取声音克隆状态接口

接口说明: 查询声音克隆任务状态

请求URL: /api/voice/status

请求方式: GET

请求头:

参数名 类型 必填 说明
Authorization string 用户token格式为"Bearer {token}"

请求参数:

参数名 类型 必填 说明
taskId string 克隆任务ID

响应结果:

{
  "code": 200,
  "msg": "获取成功",
  "data": {
    "taskId": "task123",
    "status": "completed", // processing, completed, failed
    "progress": 100,
    "result": {
      "voiceId": "voice123",
      "name": "我的声音",
      "previewUrl": "https://example.com/preview/voice123.mp3"
    }
  }
}

3.4 获取克隆声音列表接口

接口说明: 获取用户的声音克隆列表

请求URL: /api/voice/list

请求方式: GET

请求头:

参数名 类型 必填 说明
Authorization string 用户token格式为"Bearer {token}"

请求参数:

参数名 类型 必填 说明
page number 页码默认1
pageSize number 每页数量默认10

响应结果:

{
  "code": 200,
  "msg": "获取成功",
  "data": {
    "total": 5,
    "list": [
      {
        "voiceId": "voice123",
        "name": "我的声音1",
        "previewUrl": "https://example.com/preview/voice123.mp3",
        "createTime": "2023-01-01 12:00:00"
      },
      {
        "voiceId": "voice124",
        "name": "我的声音2",
        "previewUrl": "https://example.com/preview/voice124.mp3",
        "createTime": "2023-01-02 12:00:00"
      }
    ]
  }
}

首页内容接口

4.1 获取剧情角色列表接口

接口说明: 获取首页剧情角色列表

请求URL: /api/home/drama

请求方式: GET

请求参数:

参数名 类型 必填 说明
page number 页码默认1
pageSize number 每页数量默认10

响应结果:

{
  "code": 200,
  "msg": "获取成功",
  "data": {
    "total": 10,
    "list": [
      {
        "id": 1,
        "title": "白领女友的温柔早安",
        "tag": "台词腔",
        "cover": "https://example.com/images/drama1.jpg"
      },
      {
        "id": 2,
        "title": "豪门女主的秘密生活",
        "tag": "人妻",
        "cover": "https://example.com/images/drama2.jpg"
      }
    ]
  }
}

4.2 获取AI声音列表接口

接口说明: 获取首页AI声音列表

请求URL: /api/home/voice

请求方式: GET

请求参数:

参数名 类型 必填 说明
page number 页码默认1
pageSize number 每页数量默认10

响应结果:

{
  "code": 200,
  "msg": "获取成功",
  "data": {
    "total": 8,
    "list": [
      {
        "id": 1,
        "title": "甜美少女音",
        "tag": "少女",
        "cover": "https://example.com/images/voice1.jpg"
      },
      {
        "id": 2,
        "title": "性感成熟音",
        "tag": "成熟",
        "cover": "https://example.com/images/voice2.jpg"
      }
    ]
  }
}

4.3 获取角色详情接口

接口说明: 获取角色详细信息

请求URL: /api/role/detail

请求方式: GET

请求头:

参数名 类型 必填 说明
Authorization string 用户token格式为"Bearer {token}"

请求参数:

参数名 类型 必填 说明
id number 角色ID

响应结果:

{
  "code": 200,
  "msg": "获取成功",
  "data": {
    "id": 1,
    "title": "白领女友的温柔早安",
    "tag": "台词腔",
    "cover": "https://example.com/images/drama1.jpg",
    "description": "角色描述信息",
    "previewUrl": "https://example.com/preview/drama1.mp3",
    "scripts": [
      {
        "id": 101,
        "title": "脚本1"
      },
      {
        "id": 102,
        "title": "脚本2"
      }
    ]
  }
}

4.4 使用角色接口

接口说明: 用户使用特定角色

请求URL: /api/role/use

请求方式: POST

请求头:

参数名 类型 必填 说明
Authorization string 用户token格式为"Bearer {token}"

请求参数:

参数名 类型 必填 说明
roleId number 角色ID
scriptId number 脚本ID

响应结果:

{
  "code": 200,
  "msg": "操作成功",
  "data": {
    "taskId": "task456",
    "status": "processing"
  }
}