从零开始Vue3+Element Plus后台管理系统(九)——使用API协作平台Mock数据

news2024/11/29 22:37:47

截止目前,本项目用了2个接口,一个登录,一个获取列表数据。接下来想做的页面和功能,为了看起来更真实,就需要增加更多的模拟数据。
image.png
Mock语法写得有些随意,看起来还是很假 😁

Mock数据可以使用Mockjs插件,但我更喜欢用api平台,用起来方便也更真实,还可以跟后端同学协作。

yApi、postman、apiPost、apifox这几个都尝试过,操作比较类似,都可以满足需求。

本项目的2个接口开始用的是apiPost,但是今天在修改列表数据mock时,无论怎么设置数组的最大值maxItems最小值minItems,接口永远只返回最小值个数的元素,搞了半天没好,一气之下换了apifox,反正只写了2个接口,迁移很迅速。

So,如无意外,本项目将一直使用apifox来Mock。

打开云端Mock

使用web端,打开云端Mock

image.png

复制mock服务url(前置URL),在本地环境配了dev server代理,把url填进来。

apifox不存在跨域的问题,不配置proxy,直接配置在开发环境也是可以的。

// vite.config.ts
server: {
      port: 9527,
      proxy: {
        '/api': {
          target: 'https://mock.apifox.cn/m1/2700315-0-default/', // 接口的域名
          secure: false, // 如果是https接口,需要配置这个参数
          changeOrigin: true, // 如果接口跨域,需要进行这个参数配置
          rewrite: (path) => path.replace(/^\/api/, '/')
        }
      }
    },

.env.development 文件

# 开发环境
NODE_ENV = dev
# 后台请求前缀,这是mock地址
VITE_BASE_URL = '/api/'

.env.production

# 生产环境
NODE_ENV = prod
# 后台请求前缀,这是mock地址,上线请换成真实地址
VITE_BASE_URL = 'https://mock.apifox.cn/m1/2700315-0-default/'

建一个接口就可以用了

image.png

添加接口并mock数据

添加接口并定义接口url后,就可以开始做数据了,点击【响应定义】,在下方定义返回体

image.png

我定义了一个简单的客户列表,除了code和message是固定的,其他数据根据定义的mock规则随机返回。

Mock语法参考:https://apifox.com/help/app/mock/mock-rules/

image.png

点击右上方的【保存】,然后点击【发送】,可以看到mock接口返回的数据。

image.png

直接在项目中使用我们添加的接口,页面上也有数据了。

import request from '~/utils/http'

export default {
  getClientList(data: {}) {
    return request({
      url: 'getClientList',
      method: 'post',
      data
    })
  }
}

到此一个基础的mock就完成了。

添加期望

上面的mock设置完之后,如果还需要根据特殊情况返回不同的数据怎么办呢? 这时可以添加期望,当我们的请求满足期望的条件,就会返回对应的数据。

优先级:高级 Mock 里的期望 > 自定义 Mock 脚本 > 普通 Mock

image.png

设置脚本

我们mock出来的数据和真实还是有不小的差距,比如列表的页数、总条数、页码都是随机产生的,并没有什么关联,放在页面上就很怪异。这就需要使用脚本了

image.png

// 获取自动 Mock 出来的数据
var responseJson = fox.mockResponse.json();

var page = fox.mockRequest.getParam('page')

// 修改 responseJson 里的分页数据
// 将 page 设置为请求参数的 page
responseJson.result.listpage = page;

// 将 total 设置 120
responseJson.result.list.total = 120

// 将修改后的 json 写入 fox.mockResponse
fox.mockResponse.setBody(responseJson);

离真实又近了一点~

这些基础的配置,已经可以满足项目中模拟数据的需求,当然越接近真实就需要越复杂的配置,做好平衡即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/528086.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

认识IPv6---寻址模式与地址类型与格式

本文目录 1、IPv6寻址模式1.1、单播(unicast)1.1、组播(multicast)1.1、任播(Anycast) 2、IPv6地址的类型与格式2.1、IPv6地址的格式2.2、IPv6地址的类型2.2.1、单播地址简介2.2.2、组播地址简介2.2.3、任播地址简介 IPv6的出现,最重要的原因是为了解决IPv4地址不足…

我扛住字节面试了,太干了......

春招进展快 2 个月,今年相比往年我感觉比较卷,很少见到offer收割机的选手。 不管环境如何,持续学习这个是不能放弃的,心态也要稳一稳,坦然面对失败,失败才是常态,成功可能才是偶然的。 好了&a…

LitCTF-web-WP(部分)

前言 CSDN内容合伙人 2023年CSDN新星计划Web安全方向导师。 华为MindSpore截至目前最年轻的优秀开发者 阿里云专家博主、华为网络安全云享专家以及腾讯云自媒体分享计划博主。 吉林师范大学CTF校队——SuD0战队的队长 吉林师范大学网信网安学生负责人 核心粉丝群超过50人 带队…

网址域名查询-域名注册查询工具

域名查找软件 域名查找软件是一种能够帮助用户快速查询域名相关信息的工具。它通常提供了批量域名查询和实时域名查询服务,能够帮助用户查询域名的注册信息、到期时间、所有者信息、域名服务器等多种相关信息。以下是域名查找软件的主要特点: 批量域名查…

roadmap go语言

技术类的Roadmap(路线图)具有许多好处,下面是其中几个主要的好处: 明确目标:Roadmap可以帮助技术团队明确目标和愿景。它提供了一个清晰的计划,使团队成员知道他们正在朝着什么方向前进,并且可…

网络正常但是web、ftp、telnet应用新建连接偶尔卡顿处理方法

目录 问题现象 故障定位 TCP报头 options详解 Opions Kind有哪些 options中的Timestamp详解 TSval & TSecr Timestamp Value的单位是什么 TCP连接的建立与释放 普通三次握手 带时间戳的三次握手 抓包展示带时间戳的tcp会话 WireShark中的时间 VS tcpdump 直接…

KDZD400Q紫外臭氧浓度分析仪

一、产品概述 检测仪用于快速检测多种气体浓度、温湿度测量并超标报 警的场合。采用 2.31 寸高清彩屏实时显示,选用进口品牌的气体传感器,主要检测原理有: 电化学、红外、催化燃烧、热导、PID 光离子等。 可以检测管道中或受限空间、大气环境…

耗时几个月,终于决定把原本想用于商业的系统开源了

前言 嗨,大家好,我是希留,一个被迫致力于全栈开发的老菜鸟。 今天又来给小伙伴们分享一个基于 SpringBoot Vue 实现的前后端分离后台管理系统项目; 简介 这个项目是基于xiliu-tenant脚手架项目搭建而成,原本是帮朋…

USB转UART转串口芯片 GP232RNL国产低成本替代FT232RL/FT232RNL

近期收到很多人咨询FT232RL跟新版FT232RNL两者有什么区别,实际上就是内部做了一点升级,FT232RNL支持Windows11系统,参数并没有改动,完全可以直接替换使用。 今天小编给大家讲讲FT232RNL国产低成本替代芯片–GP232RNL GP232RNL 是…

动态规划:01背包理论基础 一维dp数组(滚动数组)

确定dp数组的定义 在一维dp数组中,dp[j]表示:容量为j的背包,所背的物品价值可以最大为dp[j]。 一维dp数组的递推公式 dp[j]为 容量为j的背包所背的最大价值,那么如何推导dp[j]呢? dp[j]可以通过dp[j - weight[i]]推导…

Ubuntu20.04解决疑难杂症问题问题合集

下列问题都是我一次性遇见的倒霉不。 问题一: 安装 linux 版网络调试助手,安装成功后打不开运行文件 解决办法: #通过执行可执行文件打开 # 进入到可执行文件下 cd /opt/mNetAssist/ # 运行主程序 ./mNetAssis 如果出现: libq…

体检中心智能导检系统排队是什么流程?

随着智能信息化建设的推进下,体检中心也越来越规范化、现代化、智能化,智能导检系统,有效完善体检中心服务水平,简化体检流程,节省排队等候时间,提高体检的效率,也能提升体检服务中心的形象。 下…

JVM 执行引擎

执行引擎概述 是Java 虚拟机核心的组成部分之一物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行哪些不被…

2、Flume进阶

目录 1、Flume事务 1.1 Flume事务 1.2 Flume Agent内部原理 1.3 重要组件: 2、 Flume拓扑结构 2.1 简单串联 2.2 复制和多路复用 2.3 负载均衡和故障转移 2.4 聚合 3、开发案例 3.1 复制和多路复用 3.4.2 负载均衡和故障转移 3.3 聚合 1、Flume事务 1.…

在数据化知识经济的时代,你该学会如何经营好自己的知识管理

在当今的数据化知识经济时代,知识管理已经越来越成为了一个必备的技能。在这个竞争激烈的时代,拥有良好的知识管理能力,可以帮助我们更好地应对各种挑战和机遇。 如何经营好自己的知识管理 一、认识知识管理的重要性 知识管理是指通过系统…

【计算机视觉】如何利用 CLIP 做简单的图像分类任务?(含源代码)

要使用 CLIP 模型进行预测,您可以按照以下步骤进行操作: 一、安装 安装依赖:首先,您需要安装相应的依赖项。您可以使用 Python 包管理器(如 pip )安装 OpenAI 的 CLIP 库。 pip install githttps://gith…

2023年Android开发者路线-第1部分

2023年Android开发者路线-第1部分 2023年Android开发者路线-第2部分 2023年Android开发者路线-第3部分 2023年Android开发者路线-第4部分 2023年Android开发者路线-第1部分 Android 生态系统处于不断发展的状态:每天都会引入新的库和资料,旨在加快开…

linux常见指令以及权限理解

1.linux下基本指令: ls指令: 查看文件的属性 ls-l:文件的属性 ls-la:显示所有文件的属性 ls *: linux任何一个目录下面都有两个隐藏文件: ..:表示当前路径的上级路径,可以原路返回 .&…

分布式锁-01(单节点解决方案)

分布式锁概述 为什么需要分布式锁 在单机部署的系统中,使用线程锁来解决高并发的问题,多线程访问共享变量的问题达到数据一致性,如使用synchornized、 ReentrantLock等。 但是在后端集群部署的系统中,程序在不同的JVM虚拟机中运行…

可调整界面输出的桌面万年历设计

可调整界面输出的桌面万年历设计 本文主要介绍月历和生辰八字五行的界面输出方法。一个有趣的方法是可调整界面输出格式,显示几种屏幕排版的布局。本文示例了四个式样。算法的精髓是用一种简单的算法来设置调节屏幕打印输出。分三个显示内容,即月历、大字…