init
Change-Id: I62d8e17fdc3103133b9ddaff22c27ddd9ea9f6ac
diff --git a/src/utils/axios.ts b/src/utils/axios.ts
new file mode 100644
index 0000000..c7639b0
--- /dev/null
+++ b/src/utils/axios.ts
@@ -0,0 +1,44 @@
+import axios from 'axios'
+import type { AxiosRequestConfig, AxiosResponse } from 'axios'
+
+const instance = axios.create({
+ baseURL: process.env.API_BASE_URL,
+ timeout: 10000,
+ headers: {
+ 'Content-Type': 'application/json'
+ }
+ })
+
+ // 请求拦截器
+ instance.interceptors.request.use(
+ (config) => {
+ // 添加认证 token
+ const token = localStorage.getItem('access_token')
+ if (token) {
+ config.headers.Authorization = `Bearer ${token}`
+ }
+ return config
+ },
+ (error) => {
+ return Promise.reject(error)
+ }
+ )
+
+ // 响应拦截器
+ instance.interceptors.response.use(
+ (response) => {
+ console.log('Response:', response)
+ // 统一处理响应数据格式
+ if (response.status === 200) {
+ return response.data
+ }
+ return Promise.reject(response.data)
+ },
+ (error) => {
+ // 统一错误处理
+ console.error('API Error:', error.response?.status, error.message)
+ return Promise.reject(error)
+ }
+ )
+
+export default instance
\ No newline at end of file