api-simplex-handler
Version:
一个api封装解析器
39 lines (38 loc) • 1.41 kB
JavaScript
import { ApiHandler } from "./ApiHandler";
class ApiHandlerAxios extends ApiHandler {
axiosInstance;
constructor(api, responseHandlerDefineFunction, axiosInstance) {
super(api, responseHandlerDefineFunction);
this.axiosInstance = axiosInstance;
}
send(args) {
if (!this.api.path)
return Promise.reject(`request path is undefined`);
let path = this.api.path;
const config = {
method: this.api.method,
};
if (Array.isArray(this.api.params)) {
const params = ApiHandler.assemblyParameters(this.api.params, args, this.api);
if (typeof params === 'string')
path += params;
else
config.data = params;
}
else if (typeof this.api.params !== 'undefined') {
const params = ApiHandler.assemblyParametersToUnion(this.api.params, args, this.api);
path += params.path + params.query;
config.data = params.body;
}
return this.axiosInstance(path, config)
.then(res => {
const response = {
code: res.data?.code ?? res.data?.status ?? res.status,
message: res.data?.message ?? res.data?.msg ?? res.statusText,
data: res.data?.data
};
return response;
});
}
}
export { ApiHandlerAxios };