数据处理 - 多平台接口状态码header请求封装方案

数据处理 - 多平台接口状态码header请求封装方案

统一标准

  1. 状态码
  2. header

区分处理

一起传入

{
"headers": {
"token": "",
"plant1-token": "",
"plant2-token": ""
}
}

分平台处理

!!!warning key 需为平台api公共部分

const headersObj = {
default: {},
plant1: {},
key:{}
};
//创建axios实例
const service = axios.create({
headers: {
// common headers
'Content-Type': 'application/json;charset=utf-8',
},
});
//request(请求)拦截器
service.interceptors.request.use(
(config) => {
startLoading();
for (let [key, val] of Object.entries(headersObj)) {
if (config.url.includes(key)) { // !!! key 需为平台api公共部分
Object.assign(config.headers, val);
break;
}
}
return config;
},
(error) => {
Message.error({ message: '请求超时!' });
Promise.reject(error)
}
);

状态码

统一判断

注意避免冲突,同一状态码不能在不同平台属于不同状态

const statusCode = {
success: [1, 1000],
error: [0, 1001],
timeout: [2, 1002],
};
// respone响应拦截器
service.interceptors.response.use(
(response) => {
const res = response.data;
if (response.status === 200) {
if (statusCode.success.includes(res.code)) {
return res;
}
if (statusCode.error.includes(res.code)) {
Message({
type: 'error',
duration: 1000,
message: res.result.message ? res.result.message : '接口请求异常',
});
return res;
} else {
return res;
}
}
},
async (err) => {
message.error(err.message);
return Promise.reject(err);
}
);

分平台判断

  • 不需要避免冲突
  • !!!warning key 需为平台api公共部分
const statusCode = {
default: {
success: 1,
error: 0,
timeout: 2,
},
plant1: {
success: 1000,
error: 1001,
timeout: 0,
},
};
// respone响应拦截器
service.interceptors.response.use(
(response) => {
const res = response.data;
if (response.status === 200) {
let plantstatusCode = Object.entries(statusCode).find(
([key, val]) => response.config.url.includes(key) // !!! key 需为平台api公共部分
)[1];
if (plantstatusCode.success == res.code) {
return res;
}
if (plantstatusCode.error == res.code) {
Message({
type: 'error',
duration: 1000,
message: res.result.message ? res.result.message : '接口请求异常',
});
return res;
} else {
return res;
}
}
},
async (err) => {
message.error(err.message);
return Promise.reject(err);
}
);
posted @   zc-lee  阅读(143)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示