import { extend } from 'umi-request' ; import { isDev , isTest } from './is' ; import { PORT } from './env' ; /**
 * request 网络请求工具
 * 更详细的 api 文档: https://github.com/umijs/umi-request
 */ const codeMessage = { 200 : '服务器成功返回请求的数据。' , 201 : '新建或修改数据成功。' , 202 : '一个请求已经进入后台排队（异步任务）。' , 204 : '删除数据成功。' , 400 : '发出的请求有错误，服务器没有进行新建或修改数据的操作。' , 401 : '用户没有权限（令牌、用户名、密码错误）。' , 403 : '用户得到授权，但是访问是被禁止的。' , 404 : '发出的请求针对的是不存在的记录，服务器没有进行操作。' , 406 : '请求的格式不可得。' , 410 : '请求的资源被永久删除，且不会再得到的。' , 422 : '当创建一个对象时，发生一个验证错误。' , 500 : '服务器发生错误，请检查服务器。' , 502 : '网关错误。' , 503 : '服务不可用，服务器暂时过载或维护。' , 504 : '网关超时。' , } ; type ErrorCode = keyof typeof codeMessage ; /**
 * 异常处理程序
 */ const errorHandler = ( error ) : Response => { const { response } = error ; if ( response && response . status ) { const errorText = codeMessage [ response . status as ErrorCode ] || response . statusText ; const { status , url } = response ; console . error ( { message : `请求错误 ${ status }: ${ url }` , description : errorText , } ) ; } else if ( ! response ) { console . error ( String ( error ) ) ; } return response ; } ; const getBaseUrl = ( ) => { if ( isDev || isTest ) return `http://localhost:${ PORT || 8051 }/api` ; return 'https://product.url' ; } ; /**
 * 配置request请求时的默认参数
 */ export const request = extend ( { errorHandler , prefix : getBaseUrl ( ) , credentials : 'include' , } ) ;