接口
API模块结构
API按业务领域划分为多个模块,位于web/app/api/目录下:
text
├── 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 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 getCaptcha() {
return request.get('captcha', { time: (new Date().getTime()) })
}
/**
* 获取微信公众号授权码
*/
export function getWechatAuthCode(data: AnyObject) {
return request.get('wechat/codeurl', data)
}
/**
* 同步微信信息
*/
export function wechatSync(data: AnyObject) {
return request.get('wechat/sync', data)
}
/**
* 获取协议信息
*/
export function getAgreementInfo(key: string) {
return request.get(`agreement/${key}`)
}
/**
* 重置密码
*/
export function resetPassword(data: AnyObject) {
return request.post(`password/reset`, data)
}
/**
* 发送短信验证码
*/
export function sendSms(data: AnyObject) {
return request.post(`send/mobile/${data.type}`, data)
}
/**
* 获取微信jssdk config
*/
export function getWechatSkdConfig(data: AnyObject) {
return request.get('wechat/jssdkconfig', data)
}
/**
* 拉取图片
*/
export function fetchImage(data: AnyObject) {
return request.post('file/image/fetch', data)
}
/**
* 拉取base64图片
*/
export function fetchBase64Image(data: AnyObject) {
return request.post('file/image/base64', data)
}
/**
* 获取版权信息
*/
export function getCopyRight() {
return request.get('copyright')
}
/**
* 获取站点信息
*/
export function getSiteInfo() {
return request.get('site')
}接口使用示例
导入并使用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
}
}
}