API Module Guide
Mô-đun trung tâm tác vụ
Mô tả tính năng
Tiền tố API thống nhất là http(s)://<your-domain>
Nên sử dụng HTTPS trong môi trường sản xuất để bảo mật mã thông báo xác thực. HTTP chỉ được khuyến nghị cho môi trường phát triển.
Hệ thống quản lý tác vụ không đồng bộ chung. Chủ yếu hỗ trợ các tác vụ tạo nhạc cho các nền tảng như Suno. Bao gồm các cơ chế như cập nhật trạng thái nhiệm vụ tự động, thử lại lỗi và hoàn trả hạn ngạch.
🔐 Xác thực người dùng
Nhận nhiệm vụ của tôi
- Tên giao diện: Nhận nhiệm vụ của tôi
- Phương thức HTTP: NHẬN
- Đường dẫn:
/api/task/self - Yêu cầu xác thực: Người dùng
- Mô tả chức năng: Truy xuất theo trang danh sách nhiệm vụ của người dùng hiện tại, hỗ trợ lọc theo nền tảng, ID nhiệm vụ, trạng thái và các điều kiện khác.
💡 Yêu cầu Ví dụ:
const response = await fetch('/api/task/self?p=1&page_size=20&platform=suno&task_id=task123&status=SUCCESS&action=song&start_timestamp=1640908800&end_timestamp=1640995200', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'your_user_id'
}
});
const data = await response.json();✅ Ví dụ phản hồi thành công:
{
"success": true,
"message": "",
"data": {
"items": [
{
"id": 1,
"created_at": 1640908800,
"updated_at": 1640909000,
"task_id": "task123456",
"platform": "suno",
"user_id": 1,
"quota": 1000,
"action": "song",
"status": "SUCCESS",
"fail_reason": "",
"submit_time": 1640908800,
"start_time": 1640908900,
"finish_time": 1640909000,
"progress": "100%",
"properties": {},
"data": {}
}
],
"total": 25,
"page": 1,
"page_size": 20
}
}❗ Ví dụ về phản hồi thất bại:
{
"success": false,
"message": "Failed to retrieve task list"
}🧾 Mô tả trường (Thông số yêu cầu):
p(Number): Số trang, mặc định là 1page_size(Number): Số mục trên một trang, mặc định là 20platform(String): Nền tảng tác vụ, tùy chọntask_id(String): Bộ lọc ID tác vụ, tùy chọnstatus(Chuỗi): Bộ lọc trạng thái tác vụ, các giá trị tùy chọn: "NOT_START", "SUBMITTED", "QUEUED", "IN_PROGRESS", "FAILURE", "SUCCESS", "UNKNOWN"action(Chuỗi): Bộ lọc loại tác vụ, ví dụ: "bài hát", "lời bài hát", v.v.start_timestamp(Số): Dấu thời gian bắt đầu, tùy chọnend_timestamp(Number): Dấu thời gian kết thúc, tùy chọn
🧾 Mô tả trường trả về:
id(Number): ID bản ghi cơ sở dữ liệutask_id(Chuỗi): ID tác vụ của bên thứ baplatform(String): Nền tảng tác vụuser_id(Số): ID người dùngquota(Number): Định mức tiêu thụaction(String): Loại tác vụstatus(String): Trạng thái tác vụfail_reason(String): Lý do lỗisubmit_time(Số): Dấu thời gian nộp bàistart_time(Số): Dấu thời gian bắt đầufinish_time(Số): Dấu thời gian hoàn thànhprogress(String): Phần trăm tiến độproperties(Object): Thuộc tính tác vụdata(Object): Dữ liệu kết quả nhiệm vụtotal(Number): Tổng số bản ghi tác vụ trùng khớppage(Number): Số trang trả về hiện tạipage_size(Number): Số lượng bản ghi tác vụ hiển thị trên mỗi trang
🔐 Xác thực quản trị viên
Nhận tất cả nhiệm vụ
- Tên giao diện: Nhận tất cả nhiệm vụ
- Phương thức HTTP: NHẬN
- Đường dẫn:
/api/task/ - Yêu cầu xác thực: Quản trị viên
- Mô tả chức năng: Truy xuất phân trang tất cả các tác vụ trong hệ thống, hỗ trợ lọc theo ID kênh, nền tảng, ID người dùng và các điều kiện khác.
💡 Yêu cầu Ví dụ:
const response = await fetch('/api/task/?p=1&page_size=20&channel_id=1&platform=suno&task_id=task123&status=SUCCESS&action=song&start_timestamp=1640908800&end_timestamp=1640995200', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_admin_token',
'New-Api-User': 'your_user_id'
}
});
const data = await response.json();✅ Ví dụ phản hồi thành công:
{
"success": true,
"message": "",
"data": {
"items": [
{
"id": 1,
"created_at": 1640908800,
"task_id": "task123456",
"platform": "suno",
"user_id": 1,
"channel_id": 1,
"quota": 1000,
"action": "song",
"status": "SUCCESS",
"submit_time": 1640908800,
"finish_time": 1640909000,
"progress": "100%",
"data": {}
}
],
"total": 100,
"page": 1,
"page_size": 20
}
}❗ Ví dụ về phản hồi thất bại:
{
"success": false,
"message": "Failed to retrieve task list"
}🧾 Mô tả trường (Thông số yêu cầu):
p(Number): Số trang, mặc định là 1page_size(Number): Số mục trên một trang, mặc định là 20channel_id(String): Bộ lọc ID kênh, tùy chọnplatform(String): Bộ lọc nền tảng tác vụ, tùy chọntask_id(String): Bộ lọc ID tác vụ, tùy chọnstatus(String): Bộ lọc trạng thái tác vụ, tùy chọnaction(String): Lọc loại tác vụ, tùy chọnstart_timestamp(Số): Dấu thời gian bắt đầu, tùy chọnend_timestamp(Number): Dấu thời gian kết thúc, tùy chọn- Các trường trả về bao gồm tất cả các trường từ tác vụ của người dùng, cộng thêm phần bổ sung sau:
channel_id(Số): ID kênh đã sử dụng