Files
mzltMpfqGS e4a087e67e init
2026-04-15 19:45:16 +08:00

120 lines
4.8 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// services/api.js
// API接口封装
const app = getApp()
const BASE_URL = 'https://api.notmaker.com'
const request = (options) => {
return new Promise((resolve, reject) => {
const token = wx.getStorageSync('token')
wx.showLoading({ title: '加载中...', mask: true })
wx.request({
url: BASE_URL + options.url,
method: options.method || 'GET',
data: options.data || {},
header: {
'Content-Type': 'application/json',
'Authorization': token ? `Bearer ${token}` : '',
...options.header
},
success: res => {
wx.hideLoading()
if (res.statusCode === 200) {
resolve(res.data)
} else if (res.statusCode === 401) {
wx.removeStorageSync('token')
wx.removeStorageSync('userInfo')
wx.showToast({ title: '请先登录', icon: 'none' })
setTimeout(() => {
wx.navigateTo({ url: '/pages/login/login' })
}, 1500)
reject(res.data)
} else {
wx.showToast({ title: res.data.message || '请求失败', icon: 'none' })
reject(res.data)
}
},
fail: err => {
wx.hideLoading()
wx.showToast({ title: '网络请求失败', icon: 'none' })
reject(err)
}
})
})
}
const api = {
getBaseUrl: () => BASE_URL,
// 用户相关
loginByPassword: (data) => request({ url: '/api/user/login/password', method: 'POST', data }),
loginBySms: (data) => request({ url: '/api/user/login/sms', method: 'POST', data }),
sendSmsCode: (data) => request({ url: '/api/user/sms/send', method: 'POST', data }),
wxLogin: (data) => request({ url: '/api/user/login/wechat', method: 'POST', data }),
register: (data) => request({ url: '/api/user/register', method: 'POST', data }),
getUserInfo: () => request({ url: '/api/user/info' }),
updateUserInfo: (data) => request({ url: '/api/user/info', method: 'PUT', data }),
getUserList: (data) => request({ url: '/api/user/list', data }),
deleteUser: (data) => request({ url: `/api/user/${data.id}`, method: 'DELETE' }),
followUser: (data) => request({ url: '/api/user/follow', method: 'POST', data }),
// 文章相关
getArticleList: (data) => request({ url: '/api/article/list', data }),
getArticleDetail: (id) => request({ url: `/api/article/${id}` }),
getMyArticleList: (data) => request({ url: '/api/article/my/list', data }),
createArticle: (data) => request({ url: '/api/article', method: 'POST', data }),
updateArticle: (data) => request({ url: `/api/article/${data.id}`, method: 'PUT', data }),
deleteArticle: (data) => request({ url: `/api/article/${data.id}`, method: 'DELETE' }),
addViewCount: (data) => request({ url: '/api/article/view', method: 'POST', data }),
updateFavorite: (data) => request({ url: '/api/article/favorite', method: 'POST', data }),
updateLike: (data) => request({ url: '/api/article/like', method: 'POST', data }),
search: (data) => request({ url: '/api/article/search', data }),
// 分类相关
getCategoryList: () => request({ url: '/api/category/list' }),
getCategoryDetail: (id) => request({ url: `/api/category/${id}` }),
// 标签相关
getTagList: () => request({ url: '/api/tag/list' }),
// 评论相关
getCommentList: (data) => request({ url: '/api/comment/list', data }),
addComment: (data) => request({ url: '/api/comment', method: 'POST', data }),
deleteComment: (data) => request({ url: `/api/comment/${data.id}`, method: 'DELETE' }),
getMyCommentList: (data) => request({ url: '/api/comment/my/list', data }),
// 收藏相关
getMyFavoriteList: (data) => request({ url: '/api/favorite/my/list', data }),
// 浏览历史
getBrowseHistory: (data) => request({ url: '/api/history/list', data }),
clearBrowseHistory: () => request({ url: '/api/history/clear', method: 'DELETE' }),
// 消息通知
getNotificationList: (data) => request({ url: '/api/notification/list', data }),
markNotificationRead: (data) => request({ url: '/api/notification/read', method: 'POST', data }),
markAllNotificationRead: () => request({ url: '/api/notification/read/all', method: 'POST' }),
deleteNotification: (data) => request({ url: `/api/notification/${data.id}`, method: 'DELETE' }),
// 反馈
submitFeedback: (data) => request({ url: '/api/feedback', method: 'POST', data }),
getFeedbackList: (data) => request({ url: '/api/feedback/list', data }),
// 热门搜索
getHotSearch: () => request({ url: '/api/search/hot' }),
// 系统配置
getSystemConfig: () => request({ url: '/api/system/config' })
}
module.exports = api
/**
* @联系作者16768118056
* @描述:(此项目非免费分享)源码百分百可用,搞定毕设不发愁,支持远程调试安装、二次开发、定制、讲解、文档类。
* @访问https://www.notmaker.com/detail/8326a897119d4542896c863a69d7bbe7/gtt20260415查看完整运行演示。
*/