三种常见情况:查询参数、路径参数、请求体,用 axios(你封装的 http)都很好写。
1. 查询参数(?page=1&pageSize=10 这种) 改 api:
// src/api/user.ts
import http from '../utils/http'
export function getUsers(params?: { page?: number; pageSize?: number }) {
return http.get('/users', { params })
}
组件里用:
const res = await getUsers({ page: 1, pageSize: 10 })
// 你的 http 拦截器已经 return response.data,这里的 res 就是数据本身
axios 会自动把 { page: 1, pageSize: 10 } 变成 ?page=1&pageSize=10。
2. 路径参数(/users/123 这种)
// api
export function getUserDetail(id: number | string) {
return http.get(`/users/${id}`)
}
// 组件
const detail = await getUserDetail(123)
3. 请求体参数(POST/PUT 提交表单或 JSON)
// api
export function createUser(data: { name: string; email: string }) {
return http.post('/users', data)
}
// 组件
await createUser({ name: '张三', email: 'a@b.com' })
总结:
- GET 查询条件 → http.get(url, { params })。
- URL 上的 id → 模板字符串
/users/${id}。 - POST/PUT 的数据 → 第二个参数 http.post(url, data)。