接口
API模块结构
API按业务领域划分为多个模块,位于app/api/目录下:
plaintext
├── app/
│ ├── api/
│ │ ├── article.ts # 文章相关接口
│ │ ├── auth.ts # 认证相关接口
│ │ ├── member.ts # 会员相关接口
│ │ └── system.ts # 系统相关接口文章接口模块 (article.ts)
提供文章相关的数据获取功能:
typescript
// 获取文章列表
export function getArticleList(params: Record<string, any>) {
return request.get('article/article', params)
}
// 获取所有文章(可能用于下拉选择等场景)
export function getArticleAll(params: Record<string, any>) {
return request.get('article/article/all', params)
}
// 获取文章详情
export function getArticleDetail(id: number) {
return request.get(`article/article/${id}`)
}
// 获取文章分类
export function getArticleCategory() {
return request.get('article/category')
}认证接口模块 (auth.ts)
处理用户登录、注册、退出等认证相关功能:
typescript
// 用户名密码登录
export function usernameLogin(data: AnyObject) {
return request.get('login', data)
}
// 手机验证码登录
export function mobileLogin(data: AnyObject) {
return request.post('login/mobile', data)
}
// 获取登录配置
export function getConfig() {
return request.get('login/config')
}
// 退出登录
export function logout() {
return request.put('auth/logout')
}
// 用户名注册
export function usernameRegister(data: AnyObject) {
let url = 'register'
data.pid && (url += `?pid=${data.pid}`) // 支持推荐人ID
return request.post(url, data)
}
// 手机号注册
export function mobileRegister(data: AnyObject) { /*...*/ }
// 微信登录相关接口
export function wechatLogin(data: AnyObject) { /*...*/ }
export function weappLogin(data: AnyObject) { /*...*/ }
export function scanlogin() { /*...*/ }
// 绑定手机号
export function bind(data: AnyObject) { /*...*/ }会员接口模块 (member.ts)
提供会员信息查询和管理功能:
typescript
// 获取会员信息
export function getMemberInfo() {
return request.get('member/member')
}
// 修改会员信息
export function modifyMember(data: AnyObject) {
return request.put(`member/modify/${data.field}`, data)
}
// 获取积分流水
export function getPointList(data: AnyObject) {
return request.get('member/account/point', data)
}
// 获取余额流水
export function getBalanceList(data: AnyObject) {
return request.get('member/account/balance', data)
}
// 绑定手机号
export function bindMobile(data: AnyObject) {
return request.put('member/mobile', data)
}系统接口模块 (system.ts)
提供系统功能相关的接口,如验证码、配置、文件处理等:
typescript
// 获取验证码
export function getCaptcha() {
return request.get('captcha', { time: (new Date().getTime()) })
}
// 发送短信验证码
export function sendSms(data: AnyObject) {
return request.post(`send/mobile/${data.type}`, data)
}
// 获取协议信息
export function getAgreementInfo(key: string) {
return request.get(`agreement/${key}`)
}
// 重置密码
export function resetPassword(data: AnyObject) {
return request.post(`password/reset`, data)
}
// 获取站点信息
export function getSiteInfo() {
return request.get('site')
}
// 获取版权信息
export function getCopyRight() {
return request.get('copyright')
}
// 微信相关接口
export function getWechatAuthCode(data: AnyObject) { /*...*/ }
export function getWechatSkdConfig(data: AnyObject) { /*...*/ }
// 文件处理接口
export function fetchImage(data: AnyObject) { /*...*/ }
export function fetchBase64Image(data: AnyObject) { /*...*/ }接口使用示例
导入并使用API:
typescript
// 在组件中导入并使用API
import { getArticleList, getArticleDetail } from '@/app/api/article'
export default {
setup() {
// 获取文章列表
const fetchArticles = async () => {
try {
const params = { page: 1, size: 10, category_id: 1 }
const result = await getArticleList(params)
console.log('文章列表:', result)
} catch (error) {
console.error('获取文章列表失败:', error)
}
}
// 获取文章详情
const fetchArticleDetail = async (id: number) => {
try {
const result = await getArticleDetail(id)
console.log('文章详情:', result)
} catch (error) {
console.error('获取文章详情失败:', error)
}
}
return {
fetchArticles,
fetchArticleDetail
}
}
}