UNPKG

axios-api-query

Version:

一个javascript通过api对象模型描述自动生成axios请求实例的插件

119 lines (117 loc) 5.72 kB
/** * @desc 全局配置 */ // @ts-nocheck /** * @desc * api接口插件全局应该提供的统一参数 * @type {object} * @property {string} mockBasePath mock-url请求地址(可以是相对 URL), 应该外部传入 * @property {boolean} mock=false mock全局控制开关 * @property {object} gParams={} URL全局自定义参数 * @property {boolean} cache=false 缓存控制开关在URL路径后面添加一个时间戳参数 _=1571825001570 * @property {number} reconnectMaxNum=0 请求失败允许的最大重连次数 - 未做开发 * @property {string} seq=/ api接口命名空间分隔符 * @property {string} invalidChar=`~!@#$^&*()=|{}\':;\',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“\'。,、? 进行特殊字符过滤的字符 * @property {object} statusMessage={400: '错误请求',404: '找不到请求地址',405: '方法不被允许',500: '内部错误',502: '错误网关',503: '无法获得服务'} 前端response返回状态码提示短语 * @property {boolean} console_request_enable=false 开启请求参数打印 * @property {boolean} console_response_enable=false 开启响应参数打印 * @property {function} request_error_callback=null 请求错误回调函数 */ const apiDefaultConfig = { // mock-url请求地址(可以是相对 URL), 应该外部传入 mockBasePath: '', // mock全局控制开关 mock: false, // URL全局自定义参数 gParams: {}, // 缓存控制开关在URL路径后面添加一个时间戳参数 _=1571825001570 cache: false, // 请求失败允许的最大重连次数 - 未做开发 reconnectMaxNum: 0, // api接口命名空间分隔符 seq: '/', // 进行特殊字符过滤的字符 invalidChar: // eslint-disable-next-line quotes "[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]", // 前端 response 返回状态码提示短语 https://blog.csdn.net/chuxuan0215/article/details/90676692 statusMessage: { 400: '发出的请求有错误,服务器没有进行新建或修改数据的操作', // Bad Request 401: '用户没有权限(令牌、用户名、密码错误)', // Unauthorized 402: '付费请求', // Payment Required 403: '用户得到授权,但访问是被禁止的', // Forbidden 404: '发出的请求针对的是不存在的记录,服务器没有进行操作', // Not Found 405: '方法不被允许', // Method Not Allowed 406: '请求的格式不可得', // Not Acceptable 407: '需要代理身份验证', // Proxy Authentication Required 408: '请求超时', // Request Timeout 409: '指令冲突', // Conflict 410: '请求的资源被永久删除,且不会在得到', // Gone 411: '需要Content-Length头请求', // Length Required 412: '前提条件失败', // Precondition Failed 413: '请求实体太大', // Request Entity Too Large 414: '请求URI太长', // Request-URI Too Long 415: '不支持的媒体类型', // Unsupported Media Type 416: '请求的范围不可满足', // Requested Range Not Satisfiable 417: '期望失败', // Expectation Failed 422: '当创建一个对象时,发生一个验证错误', 429: '太多请求', // Too Many Requests 500: '服务器发生错误,请检查服务器', // Internal Server Error 501: '未实现', // Not Implemented 502: '错误网关', // Bad Gateway 503: '服务不可用,服务器暂时过载或维护', // Service Unavailable 504: '网关超时', // Gateway Timeout 505: 'HTTP版本不支持' // HTTP Version Not Supported }, // 开启请求参数打印 console_request_enable: false, // 开启响应参数打印 console_response_enable: false, // 请求错误回调函数,比如:502 request_error_callback: null, // vdjs 接口请求参数校验失败回调 vdjs_fail_callback: null, // 后端服务名(mock环境不会拼上服务前缀名) backServerPref: '' }; /** * @desc * axios全局应该提供的统一参数 * @type {object} * @property {number} timeout=15000 超时时间(毫秒) * @property {string} baseURL 访问url目录(可以是相对 URL), 应该外部传入 * @property {number} maxContentLength=2000 定义允许的响应内容的最大尺寸(字节数) * @property {number} status=200 来自服务器响应的 HTTP 访问处理成功状态码 * @property {string} status=OK 来自服务器响应的 HTTP 状态信息短语 * @property {array} transformResponse 全局预处理过滤函数 * @property {object} headers={'Content-Type': 'application/json;charset=UTF-8'} 请求响应头 * @property {object} defaults 配置的默认值 * @property {string} responseType='json' 服务器响应的数据类型 * @property {object} proxy 定义代理服务器的主机名称和端口 */ const axiosDefaultConfig = { // 超时时间(毫秒) timeout: 15000, // 访问url目录(可以是相对 URL), 应该外部传入 baseURL: '', // 定义允许的响应内容的最大尺寸(字节数) maxContentLength: 2000, // 来自服务器响应的 HTTP 访问处理成功状态码 status: 200, // 来自服务器响应的 HTTP 状态信息短语 statusText: 'OK', // 全局预处理过滤函数 transformResponse: [], // 请求响应头 headers: { 'Content-Type': 'application/json;charset=UTF-8' }, // 配置的默认值 defaults: {}, // 服务器响应的数据类型 responseType: 'json', // 定义代理服务器的主机名称和端口 proxy: {} }; export { apiDefaultConfig, axiosDefaultConfig };