修改内容: 1. fund-gateway/application.yml: - 所有路由Path添加/fund前缀 - StripPrefix从1改为2(剥离/fund和模块名两级) - 例:/fund/sys/... -> 转发到 /api/v1/sys/... 2. 前端API配置: - fund-admin/src/api/request.ts: baseURL改为'/fund' - fund-mobile/src/api/request.ts: baseURL改为'/fund' 3. Nginx部署脚本: - 添加/fund/路径代理配置 - 保留/api/代理兼容旧版 API调用示例: - 旧版:/sys/auth/login - 新版:/fund/sys/auth/login 网关路由: - /fund/sys/** -> lb://fund-sys/api/v1/sys/** - /fund/cust/** -> lb://fund-cust/api/v1/cust/** - ...
58 lines
1.4 KiB
TypeScript
58 lines
1.4 KiB
TypeScript
import axios from 'axios'
|
||
|
||
const request = axios.create({
|
||
baseURL: '/fund',
|
||
timeout: 15000,
|
||
headers: {
|
||
'Content-Type': 'application/json'
|
||
}
|
||
})
|
||
|
||
// 请求拦截器
|
||
request.interceptors.request.use(
|
||
(config) => {
|
||
const token = localStorage.getItem('token')
|
||
if (token) {
|
||
config.headers['Authorization'] = `Bearer ${token}`
|
||
}
|
||
// 添加租户ID(从URL路径的tid参数获取,存储在localStorage中)
|
||
const tid = localStorage.getItem('tid') || '1'
|
||
config.headers['X-Tenant-Id'] = tid
|
||
return config
|
||
},
|
||
(error) => {
|
||
return Promise.reject(error)
|
||
}
|
||
)
|
||
|
||
// 响应拦截器
|
||
request.interceptors.response.use(
|
||
(response) => {
|
||
const res = response.data
|
||
if (res.code && res.code !== 200) {
|
||
return Promise.reject(new Error(res.message || '请求失败'))
|
||
}
|
||
return res
|
||
},
|
||
(error) => {
|
||
// 提取更详细的错误信息
|
||
let message = '网络错误'
|
||
if (error.response) {
|
||
const status = error.response.status
|
||
const data = error.response.data
|
||
if (data && data.message) {
|
||
message = data.message
|
||
} else if (data && data.error) {
|
||
message = `${status}: ${data.error}`
|
||
} else {
|
||
message = `请求失败 (${status})`
|
||
}
|
||
} else if (error.message) {
|
||
message = error.message
|
||
}
|
||
return Promise.reject(new Error(message))
|
||
}
|
||
)
|
||
|
||
export default request
|