| import request from './request' | |
| /** | |
| * 上传种子 | |
| * @param {FormData} formData - 包含种子文件和相关信息的表单数据 | |
| * @returns {Promise} | |
| */ | |
| export function uploadTorrent(formData) { | |
| return request({ | |
| url: '/torrent/upload', | |
| method: 'post', | |
| data: formData, | |
| headers: { | |
| 'Content-Type': 'multipart/form-data' | |
| } | |
| }) | |
| } | |
| /** | |
| * 搜索种子 | |
| * @param {Object} searchParams - 搜索参数 | |
| * @param {string} searchParams.keyword - 搜索关键词 | |
| * @param {string} searchParams.category - 分类 | |
| * @param {string} searchParams.sortBy - 排序字段 | |
| * @param {string} searchParams.sortOrder - 排序方向 | |
| * @param {number} searchParams.page - 页码 | |
| * @param {number} searchParams.entriesPerPage - 每页条数 | |
| * @returns {Promise} | |
| */ | |
| export function searchTorrents(searchParams) { | |
| return request({ | |
| url: '/torrent/search', | |
| method: 'post', | |
| data: searchParams | |
| }).catch(error => { | |
| console.error('🚨 API请求失败:', { | |
| url: '/torrent/search', | |
| requestedURL: error.config?.url, | |
| baseURL: error.config?.baseURL, | |
| fullURL: error.config?.baseURL ? error.config.baseURL + error.config.url : error.config?.url, | |
| status: error.response?.status, | |
| statusText: error.response?.statusText | |
| }) | |
| throw error | |
| }) | |
| } | |
| /** | |
| * 获取分类列表 | |
| * @returns {Promise} | |
| */ | |
| export function getCategories() { | |
| return request({ | |
| url: '/category/list', // 注意这里不需要加 /api,已经在代理中配置了 | |
| method: 'get' | |
| }) | |
| } | |
| /** | |
| * 获取标签列表 | |
| * @returns {Promise} | |
| * 暂时还没有获取标签的列表 | |
| */ | |
| export function getTags() { | |
| console.log('调用获取标签列表API...') | |
| // 后端没有标签的Controller,返回模拟数据 | |
| return new Promise((resolve) => { | |
| setTimeout(() => { | |
| resolve({ | |
| data: [ | |
| { id: 1, name: 'linux' }, | |
| { id: 2, name: 'ios' }, | |
| { id: 3, name: 'ubuntu' } | |
| ] | |
| }) | |
| }, 100) | |
| }) | |
| } | |
| /** | |
| * 获取种子详情 | |
| * @param {string} infoHash - 种子的info hash | |
| * @returns {Promise} | |
| */ | |
| export function getTorrentDetail(infoHash) { | |
| return request({ | |
| url: `/torrent/${infoHash}`, | |
| method: 'get' | |
| }) | |
| } |