diff --git a/aurora-vue/aurora-blog/src/api/api.ts b/aurora-vue/aurora-blog/src/api/api.ts index 6242c94..3d8a264 100644 --- a/aurora-vue/aurora-blog/src/api/api.ts +++ b/aurora-vue/aurora-blog/src/api/api.ts @@ -1,60 +1,168 @@ +// 导入axios库用于发送HTTP请求 import axios from 'axios' +// 导出API请求对象,包含各类接口调用方法 export default { + /** + * 获取顶部和精选文章 + * @returns {Promise} axios GET请求Promise对象 + */ getTopAndFeaturedArticles: () => { return axios.get('/api/articles/topAndFeatured') }, + + /** + * 获取文章列表(支持分页、筛选等参数) + * @param {any} params - 请求参数(如分页信息、筛选条件等) + * @returns {Promise} axios GET请求Promise对象 + */ getArticles: (params: any) => { return axios.get('/api/articles/all', { params: params }) }, + + /** + * 根据分类ID获取文章列表 + * @param {any} params - 请求参数(包含分类ID及分页信息等) + * @returns {Promise} axios GET请求Promise对象 + */ getArticlesByCategoryId: (params: any) => { return axios.get('/api/articles/categoryId', { params: params }) }, + + /** + * 根据文章ID获取文章详情 + * @param {any} articleId - 文章ID + * @returns {Promise} axios GET请求Promise对象 + */ getArticeById: (articleId: any) => { return axios.get('/api/articles/' + articleId) }, + + /** + * 获取所有分类 + * @returns {Promise} axios GET请求Promise对象 + */ getAllCategories: () => { return axios.get('/api/categories/all') }, + + /** + * 获取所有标签 + * @returns {Promise} axios GET请求Promise对象 + */ getAllTags: () => { return axios.get('/api/tags/all') }, + + /** + * 获取排名前十的标签 + * @returns {Promise} axios GET请求Promise对象 + */ getTopTenTags: () => { return axios.get('/api/tags/topTen') }, + + /** + * 根据标签ID获取文章列表 + * @param {any} params - 请求参数(包含标签ID及分页信息等) + * @returns {Promise} axios GET请求Promise对象 + */ getArticlesByTagId: (params: any) => { return axios.get('/api/articles/tagId', { params: params }) }, + + /** + * 获取所有归档信息 + * @param {any} params - 请求参数(如分页信息等) + * @returns {Promise} axios GET请求Promise对象 + */ getAllArchives: (params: any) => { return axios.get('/api/archives/all', { params: params }) }, + + /** + * 用户登录 + * @param {any} params - 登录参数(如用户名、密码等) + * @returns {Promise} axios POST请求Promise对象 + */ login: (params: any) => { return axios.post('/api/users/login', params) }, + + /** + * 保存评论 + * @param {any} params - 评论参数(如评论内容、关联文章ID等) + * @returns {Promise} axios POST请求Promise对象 + */ saveComment: (params: any) => { return axios.post('/api/comments/save', params) }, + + /** + * 获取评论列表 + * @param {any} params - 请求参数(如关联文章ID、分页信息等) + * @returns {Promise} axios GET请求Promise对象 + */ getComments: (params: any) => { return axios.get('/api/comments', { params: params }) }, + + /** + * 获取最新的六条评论 + * @returns {Promise} axios GET请求Promise对象 + */ getTopSixComments: () => { return axios.get('/api/comments/topSix') }, + + /** + * 获取关于页面信息 + * @returns {Promise} axios GET请求Promise对象 + */ getAbout: () => { return axios.get('/api/about') }, + + /** + * 获取友情链接 + * @returns {Promise} axios GET请求Promise对象 + */ getFriendLink: () => { return axios.get('/api/links') }, + + /** + * 提交用户信息(更新用户资料) + * @param {any} params - 用户信息参数 + * @returns {Promise} axios PUT请求Promise对象 + */ submitUserInfo: (params: any) => { return axios.put('/api/users/info', params) }, + + /** + * 根据用户ID获取用户信息 + * @param {any} id - 用户ID + * @returns {Promise} axios GET请求Promise对象 + */ getUserInfoById: (id: any) => { return axios.get('/api/users/info/' + id) }, + + /** + * 更新用户订阅状态 + * @param {any} params - 订阅参数 + * @returns {Promise} axios PUT请求Promise对象 + */ updateUserSubscribe: (params: any) => { return axios.put('/api/users/subscribe', params) }, + + /** + * 发送验证码(用于邮箱验证等) + * @param {any} username - 用户名/邮箱 + * @returns {Promise} axios GET请求Promise对象 + */ sendValidationCode: (username: any) => { return axios.get('/api/users/code', { params: { @@ -62,52 +170,133 @@ export default { } }) }, + + /** + * 绑定邮箱 + * @param {any} params - 绑定参数(如邮箱、验证码等) + * @returns {Promise} axios PUT请求Promise对象 + */ bindingEmail: (params: any) => { return axios.put('/api/users/email', params) }, + + /** + * 用户注册 + * @param {any} params - 注册参数(如用户名、密码、邮箱等) + * @returns {Promise} axios POST请求Promise对象 + */ register: (params: any) => { return axios.post('/api/users/register', params) }, + + /** + * 搜索文章 + * @param {any} params - 搜索参数(如关键词等) + * @returns {Promise} axios GET请求Promise对象 + */ searchArticles: (params: any) => { return axios.get('/api/articles/search', { params: params }) }, + + /** + * 获取相册列表 + * @returns {Promise} axios GET请求Promise对象 + */ getAlbums: () => { return axios.get('/api/photos/albums') }, + + /** + * 根据相册ID获取照片 + * @param {any} albumId - 相册ID + * @param {any} params - 请求参数(如分页信息等) + * @returns {Promise} axios GET请求Promise对象 + */ getPhotosBuAlbumId: (albumId: any, params: any) => { return axios.get('/api/albums/' + albumId + '/photos', { params: params }) }, + + /** + * 获取网站配置信息 + * @returns {Promise} axios GET请求Promise对象 + */ getWebsiteConfig: () => { return axios.get('/api') }, + + /** + * QQ登录 + * @param {any} params - QQ登录参数(如code等) + * @returns {Promise} axios POST请求Promise对象 + */ qqLogin: (params: any) => { return axios.post('/api/users/oauth/qq', params) }, + + /** + * 发送报告信息 + * @returns {void} 无返回值(仅发送请求) + */ report: () => { axios.post('/api/report') }, + + /** + * 获取说说列表 + * @param {any} params - 请求参数(如分页信息等) + * @returns {Promise} axios GET请求Promise对象 + */ getTalks: (params: any) => { return axios.get('/api/talks', { params: params }) }, + + /** + * 根据ID获取说说详情 + * @param {any} id - 说说ID + * @returns {Promise} axios GET请求Promise对象 + */ getTalkById: (id: any) => { return axios.get('/api/talks/' + id) }, + + /** + * 用户退出登录 + * @returns {Promise} axios POST请求Promise对象 + */ logout: () => { return axios.post('/api/users/logout') }, + + /** + * 根据评论ID获取回复列表 + * @param {any} commentId - 评论ID + * @returns {Promise} axios GET请求Promise对象 + */ getRepliesByCommentId: (commentId: any) => { return axios.get(`/api/comments/${commentId}/replies`) }, + + /** + * 更新用户密码 + * @param {any} params - 密码更新参数(如原密码、新密码等) + * @returns {Promise} axios PUT请求Promise对象 + */ updatePassword: (params: any) => { return axios.put('/api/users/password', params) }, + + /** + * 访问文章(记录访问信息) + * @param {any} params - 访问参数(如文章ID等) + * @returns {Promise} axios POST请求Promise对象 + */ accessArticle: (params: any) => { return axios.post('/api/articles/access', params) } -} +} \ No newline at end of file