base.ts:
import axios, { AxiosInstance, AxiosResponse } from 'axios';
import { ApiBaseUrl } from '../shared/constants';
const instance: AxiosInstance = axios.create({
headers: {
'Content-Type': 'application/json',
},
method: 'POST',
withCredentials: true,
baseURL: ApiBaseUrl,
timeout: 20000,
});
instance.interceptors.response.use((response: AxiosResponse<any>) => {
if (response.status) {
switch (response.status) {
case 200:
return response.data;
case 401:
// 未登录处理方法
break;
case 403:
// token过期处理方法
break;
default:
}
} else {
return response;
}
return response.data;
});
export default instance;
index.ts:
import api from './base';
interface HTTPParams {
[key: string]: any;
}
interface HttpResponse {
errmsg: string;
code: number;
result: any;
extra: any;
}
const httpApiPost = (path: string, params: HTTPParams) => {
const [pathValue, opValue] = path.split('op/');
return api.post<void, HttpResponse>(`${pathValue}op`, {
op: opValue,
...params,
});
};
export function getCaseLists(params: HTTPParams) {
return httpApiPost('/regression/case/op/list', params);
}
使用:
import {getCaseLists} from '../service/index.ts"
// api
const res = await getCaseLists({});