🎵 音频管理 API
通过 HTTP API 管理音频数据
音频的CRUD操作。
📥 获取音频信息
GET
/api/audio参数:
备注:不传参数即可查询所有音频
响应:200 OK,返回音频数组。例如:
{
"data": [
{
"id": "1767042792152n1yc9qrf3",
"resourceType": "audio",
"name": "音频名称",
"description": "音频描述",
"artist": "艺术家",
"tags": ["标签1", "标签2"],
"actors": ["演员1", "演员2"],
"coverPath": "C:/Music/cover.png",
"resourcePath": "C:/Music/song.mp3",
"visitedSessions": [
"2025-12-29T22:05:34.528Z",
"2026-01-21T08:53:13.157Z"
],
"addedDate": "2025-12-29T21:13:12.152Z",
"rating": 5,
"comment": "好听",
"isFavorite": true
}
]
}JavaScript代码示例
const res = await fetch('http://127.0.0.1:8765/api/audio')
const audio = await res.json()Python代码示例
import requests
response = requests.get('http://127.0.0.1:8765/api/audio')
audio = response.json()📥 获取单个音频
GET
/api/audio/:id参数:id - 音频ID
响应:200 OK 返回音频对象,不存在则 404。例如:
{
"id": "1767042792152n1yc9qrf3",
"resourceType": "audio",
"name": "音频名称",
"description": "音频描述",
"artist": "艺术家",
"tags": ["标签1", "标签2"],
"actors": ["演员1", "演员2"],
"coverPath": "C:/Music/cover.png",
"resourcePath": "C:/Music/song.mp3",
"visitedSessions": [
"2025-12-29T22:05:34.528Z",
"2026-01-21T08:53:13.157Z"
],
"addedDate": "2025-12-29T21:13:12.152Z",
"rating": 5,
"comment": "好听",
"isFavorite": true
}JavaScript代码示例
const res = await fetch('http://127.0.0.1:8765/api/audio/1234567890abc')
const audio = await res.json()Python代码示例
import requests
response = requests.get('http://127.0.0.1:8765/api/audio/1234567890abc')
audio = response.json()➕ 创建音频
POST
/api/audio请求体:
{
"name": "音频名称",
"description": "音频描述",
"artist": "艺术家",
"tags": ["标签1", "标签2"],
"actors": ["演员1", "演员2"],
"coverPath": "C:/Music/cover.png",
"resourcePath": "C:/Music/song.mp3",
"visitedSessions": [],
"rating": 0,
"comment": "",
"isFavorite": false
}响应:201 Created,返回创建的音频对象。例如:
注意:ID 和 addedDate 会自动生成
JavaScript代码示例
const res = await fetch('http://127.0.0.1:8765/api/audio', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
name: '新音频',
artist: '艺术家',
resourcePath: 'C:/Music/song.mp3'
})
})
const createdAudio = await res.json()Python代码示例
import requests
new_audio = {
'name': '新音频',
'artist': '艺术家',
'resourcePath': 'C:/Music/song.mp3'
}
response = requests.post('http://127.0.0.1:8765/api/audio', json=new_audio)
created_audio = response.json()✏️ 更新音频
PUT
/api/audio/:id参数:id - 音频ID
请求体:要更新的字段(JSON 对象,只需传要修改的字段)
{
"name": "更新后的音频名",
"description": "更新后的描述",
"rating": 5,
"tags": ["新标签1", "新标签2"],
"isFavorite": true
}响应:200 OK,返回更新后的音频对象。例如:
注意:ID 和 addedDate 字段不允许修改
JavaScript代码示例
const res = await fetch('http://127.0.0.1:8765/api/audio/1234567890abc', {
method: 'PUT',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name: '更新后的音频名' })
})
const updatedAudio = await res.json()Python代码示例
import requests
update_data = {'name': '更新后的音频名'}
response = requests.put('http://127.0.0.1:8765/api/audio/1234567890abc', json=update_data)
updated_audio = response.json()🗑️ 删除音频
DELETE
/api/audio/:id参数:id - 音频ID
响应:204 No Content(成功)或 404 Not Found(不存在)
注意:删除操作不会删除本地音频文件,仅移除管理器中的引用
JavaScript
await fetch('http://127.0.0.1:8765/api/audio/1234567890abc', { method: 'DELETE' })
// 成功返回 204,无响应体Python
import requests
response = requests.delete('http://127.0.0.1:8765/api/audio/1234567890abc')
# 成功返回 204,无响应体📊 音频数据字段说明
音频对象包含以下字段:
id- 音频唯一标识符(自动生成,不可修改)resourceType- 资源类型,固定为 "audio"name- 音频名称(必需)description- 音频描述artist- 艺术家tags- 标签数组actors- 演员数组resourcePath- 音频文件路径coverPath- 封面图片路径visitedSessions- 访问会话时间数组(ISO 字符串数组,记录每次访问时间)addedDate- 添加日期(自动生成,不可修改)rating- 评分(1-5 或 0)comment- 备注isFavorite- 是否收藏
⚠️ 错误处理
API 使用标准的 HTTP 状态码:
- 200 OK:请求成功
- 201 Created:资源创建成功
- 204 No Content:删除成功(无响应体)
- 400 Bad Request:请求参数错误(如缺少必需字段)
- 404 Not Found:资源不存在
- 500 Internal Server Error:服务器内部错误
错误响应格式:
{
"error": "错误信息"
}