Skip to content

Instantly share code, notes, and snippets.

@wisetc
Created September 3, 2019 06:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wisetc/226d1a707f37f1b2053c4bb35f3e73e9 to your computer and use it in GitHub Desktop.
Save wisetc/226d1a707f37f1b2053c4bb35f3e73e9 to your computer and use it in GitHub Desktop.
Java 微服务前端 request 实例
import { Toast } from 'saltui';
import Axios from 'axios';
import env from 'src/env';
export const requestHeaders = { 'Content-Type': 'application/json' };
export const transformRequest = (data = {}, headers) => {
if (typeof data === 'string') return data;
return JSON.stringify(data);
};
export const responseInterceptor = response => response;
export const exceptionInterceptor = error => {
const status = error.response ? error.response.status : '';
const dict = {
404: '服务暂不可用',
500: '服务内部错误',
};
Toast.show({
type: 'error',
content: dict[status] || '服务暂不可用',
});
return Promise.reject(error);
};
export function createAxios(baseURL, options = {}, serviceName = '') {
let _axios = Axios.create({
baseURL,
headers: requestHeaders,
transformRequest: [transformRequest],
timeout: 10000,
...options,
});
let _exceptionInterceptor = null;
if (serviceName) {
_exceptionInterceptor = error => {
const response = error.response;
let tip = '故障';
if (!response) {
tip = '没响应';
} else {
const status = response ? response.status : 0;
tip = status === 404 ? '不在了' : `[${status}] 不给力`;
}
Toast.show({
content: '抱歉~ ' + serviceName + tip,
duration: 5000,
});
return Promise.reject(error);
};
}
_axios.interceptors.response.use(
responseInterceptor,
_exceptionInterceptor || exceptionInterceptor
);
return _axios;
}
export function getBaseURL(serviceDevHost, servicePort, serviceID) {
if (env === 'dev') {
return 'http://192.168.1.33:10200/' + serviceID;
// return `http://${serviceDevHost}:${servicePort}/` + serviceID;
} else if (env === 'test') {
return 'http://testapi.sayyoo.cn/' + serviceID;
} else {
return 'http://api.example.com/' + serviceID;
}
}
// @format
import { createAxios, getBaseURL } from '../_utils';
export const serviceID = 'oss';
export const serviceDevHost = '192.168.1.11';
export const servicePort = 21350;
export const serviceName = '对象存储服务';
export const _axios = createAxios(
getBaseURL(serviceDevHost, servicePort, serviceID),
{},
serviceName
);
export default function() {
return {
imageToken: {
create(params) {
return _axios.post('token', params);
},
},
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment