九色鹿中Mock数据
利用axios-mock-adapter
用法
import MockAdapter from "axios-mock-adapter";
const mock = new MockAdapter(instance);
// 和生成 functionId:Res 对象
// 后续根据functionId可以返回mockRes
const apiMockRes = Object.values(API).reduce(
(acc, cur) =>
Object.assign(acc, {
[cur.alias]: cur.defaultRes
}),
{}
);
mock.onAny().reply(function Res(config) {
const functionId =
getUrlParamBy("functionId", config.url) || config.params.functionId;
const res = apiMockRes[functionId];
return [200, res];
});
mock数据
包含网关api,res,及method
export const GET_LABEL_LIST = {
alias: "ddDataCenterLabelList",
defaultRes: {
data: {
data: labelList,
page: 1,
size: 100,
total: 100
},
resultCode: "00",
resultMsg: "请求成功"
}
};
调用
import { GET_ALL_LABEL, GET_LABEL_LIST } from "../../api/apiGatewayMapList";
invokeApi(GET_ALL_LABEL).then((res) => {
if (!res.data || res.data.length < 1) return;
const list = res.data.map((item) => {
return {
label: item.name,
value: item.id
};
});
invoke函数:
const invokeApi = (api, params) => {
const { alias, method = "get" } = api;
return Axios[method](alias, params);
};