Files
HAOVP/frontend/video-frontend-web/src/api/recommend.ts
T

57 lines
1.4 KiB
TypeScript

import request from '@/utils/request.ts'
import type { VideoInfo } from '@/types'
/**
* 推荐相关 API
*/
export const recommendApi = {
/**
* 获取首页推荐
* @param page 页码
* @param size 每页数量
*/
getHomeRecommend(page: number = 1, size: number = 20): Promise<VideoInfo[]> {
return request.get('/recommend/home', { page, size })
},
/**
* 获取热门推荐
* @param periodType 时间周期类型:1-日榜,2-周榜,3-月榜
* @param size 数量
*/
getHotRecommend(periodType: number = 1, size: number = 20): Promise<VideoInfo[]> {
return request.get('/recommend/hot', { periodType, size })
},
/**
* 获取相似视频推荐
*/
getSimilarVideos(videoId: number, limit?: number): Promise<VideoInfo[]> {
return request.get(`/recommend/similar/${videoId}`, { limit })
},
/**
* 获取标签视频推荐
*/
getTagVideos(tagId: number, params?: { page?: number; size?: number }): Promise<VideoInfo[]> {
return request.get(`/recommend/tag/${tagId}`, params)
},
/**
* 记录用户行为
*/
recordBehavior(params: {
videoId: number
actionType: 'view' | 'like' | 'coin' | 'favorite' | 'share' | 'comment'
}): Promise<void> {
return request.post('/recommend/behavior', params)
},
/**
* 更新用户兴趣
*/
updateInterest(params: { tagIds: number[] }): Promise<void> {
return request.post('/recommend/interest/update', params)
}
}