11 KiB
后端API接口文档
本文档整理了前端项目所需的所有后端API接口。
目录
用户认证接口
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"
}
}