Coffee AdminCoffee Admin
  • 核心

    • 介绍
    • 快速开始
    • 目录结构
    • 布局和主题
    • 路由配置
    • 权限配置
    • 请求配置
  • 其他

    • 常见问题
  • 个人服务
  • 企业服务
赞助
  • 核心

    • 介绍
    • 快速开始
    • 目录结构
    • 布局和主题
    • 路由配置
    • 权限配置
    • 请求配置
  • 其他

    • 常见问题
  • 个人服务
  • 企业服务
赞助
  • 指南

    • 基础

      • 介绍
      • 快速开始
      • 目录结构
      • 布局和主题
      • 路由配置
      • 权限配置
      • 请求配置

Mock

平台配置了Mock的方法,可以方便的进行前后端分离开发。并可以通过环境变量来控制是否开启Mock

点击查看
// .env.development
VITE_USE_MOCK=true

Mock请求的方法

Get方法
Mock.mock('/api/auth/info', 'get', (options: any) => {
    return {
        code: 200,
        message: 'success',
        data: {
            name: 'admin',
        },
    };
});
Post方法
Mock.mock('/api/auth/login', 'post', (options: any) => {
    return {
        code: 200,
        message: 'success',
        data: {
            token: '1234567890',
        },
    };
});

请求设置

平台分别封装了Axios、Fetch、WebSocket三种请求方式,并内置了丰富的功能。默认采用Axios请求。

Axios和Fetch

  • 支持Get、Post、Put、Delete四种请求方式
  • 支持FormData、Json、Urlencoded三种请求格式
  • 支持拦截器、超时、取消请求、请求重试等功能的设置
  • 支持响应拦截、错误重定向、错误信息提示等功能
  • 支持 axios和fetch下载进度监控和并发请求
  • 支持 fetch 上传进度监控
  • 支持 fetch 流式传输
Get方法
    const api = type === 'axios' ? axiosRequest : fetchRequest;
    const response = await api.get('/api/test', {
        params: {
            name: 'admin',
        },
    });
Post方法
    const api = type === 'axios' ? axiosRequest : fetchRequest;
    const response = await api.post('/api/test', {
        data: {
            name: 'admin',
        },
    });
Put方法
    const api = type === 'axios' ? axiosRequest : fetchRequest;
    const response = await api.put('/api/test', {
        data: {
            name: 'admin',
        },
    });
Delete方法
    const api = type === 'axios' ? axiosRequest : fetchRequest;
    const response = await api.delete('/api/test', {
        params: {
            name: 'admin',
        },
    });
请求重试方法
    const api = type === 'axios' ? axiosRequest : fetchRequest;
    const response = await api.get('/api/test-retry', {
    retry: 3,
    retryDelay: 1000
    });
上传方法
    const api = type === 'axios' ? axiosRequest : fetchRequest;
    await api.upload('/api/upload', formData, {
        onUploadProgress: (progress: number) => {
            const percent = Math.round(progress * 100);
            if (progress === 0) {
              message.loading({ content: '准备上传...', key: 'Upload' });
            } else {
              message.loading({ 
                content: `上传进度 ${percent}%`, 
                key: 'Upload' 
              });
            }
          }
        });
下载方法
    const api = type === 'axios' ? axiosRequest : fetchRequest;
    await api.download('/api/download', {
        onDownloadProgress: (progress: number) => {
            const percent = Math.round(progress * 100);
        }
    });
并发请求方法
    const api = type === 'axios' ? axiosRequest : fetchRequest;
    await api.allLimit([
        api.get('/api/test1'),
        api.get('/api/test2')
    ], 2);
流式传输方法
    await fetchRequest.stream('/api/stream', {
        onMessage: (message: string) => {
            console.log(message);
        }
    });

WebSocket

  • 支持心跳检测、断线重连、消息重发等功能
  • 支持消息队列、消息过滤、消息缓存等功能
Last Updated:
Contributors: yangcw
Prev
权限配置