基于Mock.js,使用C#生成模拟数据
获取某前端框架, 使用 Mock.js 生成模拟数据, 想要对api进行改造,并且保留原始数据,需要使用C# 重写后端api 的数据
模拟的内容:
Random.guid()
uuid: '@uuid',
id: '@id',
email: '@email',
datatime: '@datetime'
switch: '@boolean'
percent: '@integer(80,99)'
'rate|1': [1, 2, 3, 4, 5]
'status|1': ['published', 'draft', 'deleted'],
description: '@csentence',
title: '@title(1, 2)',
对应的C# 类
public static class MockHelper
{
private static Random _random;
private static Random random
{
get
{
if (_random == null)
{
_random = new Random();
}
return _random;
}
}
public static string uuid()
{
return Guid.NewGuid().ToString();
}
public static string id()
{
//18位
//100000000000000000
//999999999999999999
//return random.Next(100000000, 999999999).ToString();
return random.NextInt64(100000000000000000, 999999999999999999).ToString();
}
/// <summary>
/// 获取英文标题, n-m 个
/// </summary>
/// <param name="n"></param>
/// <param name="m"></param>
/// <returns></returns>
public static string title(int n = 1, int m = 1)
{
return "";
} /// <summary>
/// 获取中文描述
/// </summary>
/// <returns></returns>
public static string csentence()
{ return "";
} /// <summary>
/// 获取该状态的数组
/// </summary>
/// <param name="t"></param>
/// <param name="itemList"></param>
/// <returns></returns>
public static string arr(int t, List<string> itemList)
{ //传入 itemList 中, 随机 获取 t 个元素
var s = Enumerable.Range(1, t).Select(index => itemList[_random.Next(itemList.Count)]).ToArray(); return string.Join(",",s);
} /// <summary>
/// 获取该状态的数组
/// </summary>
/// <param name="t"></param>
/// <param name="itemList"></param>
/// <returns></returns>
public static int arr(int t, List<int> itemList)
{
//传入 itemList 中, 随机 获取 t 个元素
var s = Enumerable.Range(1, t).Select(index => itemList[_random.Next(itemList.Count)]).ToArray(); return s[0];
} /// <summary>
/// 获取该状态的数组
/// </summary>
/// <param name="t"></param>
/// <param name="itemList"></param>
/// <returns></returns>
public static List<string> arr2(int t, List<string> itemList)
{ //传入 itemList 中, 随机 获取 t 个元素
return Enumerable.Range(1, t).Select(index => itemList[_random.Next(itemList.Count)]).ToList();
} /// <summary>
/// 获取中文 名字
/// </summary>
/// <returns></returns>
public static string cnname()
{
return "";
} /// <summary>
/// 随机的时间
/// </summary>
/// <returns></returns>
public static string datetime()
{
//随机的 datetime
DateTime dateTime = DateTime.Now;
int s = random.Next(99999999);
return dateTime.AddSeconds(s).ToString("yyyy-MM-dd HH:mm:ss");
}
public static int integer(int n,int m)
{
return random.Next(n, m);
}
public static bool boolean()
{
int t = random.Next(1, 3);
return t==1;
}
}
对应的调用
/// <summary>
/// 对应 search/getList
/// </summary>
/// <returns></returns>
[HttpGet("table/getList")]
public IActionResult table_getList()
{
List<tableinfo> list = new List<tableinfo>(); Random random = new Random();
var arr_status = new List<string>() { "published", "draft", "deleted" };
var arr_rate = new List<int>() { 1, 2, 3, 4, 5 };
for (int i = 0; i < 50; i++)
{
list.Add(new tableinfo()
{
uuid = MockHelper.uuid(),
id = MockHelper.id(),
title = gettitle(),
description = getdescription(),
author = getcnname(),
datetime = MockHelper.datetime(),
pageViews = MockHelper.integer(300, 500),
status = MockHelper.arr(1, arr_status),
img = $"https://cdn.jsdelivr.net/gh/chuzhixin/image/table/vab-image-{random.Next(1, 38)}.jpg",
rate = MockHelper.arr(1, arr_rate),
@switch = MockHelper.boolean(),
percent = MockHelper.integer(88, 99),
percentage = MockHelper.integer(0, 100)
});
} var response = new { list = list, total = list.Count };
return SUCCESS(response, TIME_FORMAT_FULL); } static string[] cnnameArr = new string[] { "黄超", "武平", "顾洋", "阎磊", "姚敏", "韩杰", "赖娜" };
static string getcnname()
{
Random random = new Random();
int t = random.Next(0, cnnameArr.Length); return cnnameArr[t];
} static string[] titleArr = new string[] { "Kchcw Cethdb", "Aylm", "Qnq", "Kbpbdlx Sqevhkscop", "Dcse", "Hismm", "Uhmq Qvkfn" };
static string gettitle()
{
Random random = new Random();
int t = random.Next(0, titleArr.Length); return titleArr[t];
}
static string[] descriptionArr = new string[] { "后研率非体才求儿且口心华热联造层相。", "由五报生什造其第铁龙历完何代直复会。", "历采率正道省社金比事正满打。", "使代消事住并眼质及两住才。", "立开决从教报得口只毛市立。", "代电代需产出声况级名连此且大志持。", "全路称合思管还话较教门并织。" };
static string getdescription()
{
Random random = new Random();
int t = random.Next(0, descriptionArr.Length); return descriptionArr[t];
}
基于Mock.js,使用C#生成模拟数据的更多相关文章
- Mock.js 与 fiddler 前端模拟数据与拦截请求
最近 工作需要 接触了Mock.js. Mock.js 是一款模拟数据生成器,旨在帮助前端攻城师独立于后端进行开发,帮助编写单元测试.提供了以下模拟功能: 根据数据模板生成模拟数据 模拟 Ajax ...
- mock.js 劫持 ajax,模拟数据
http://mockjs.com/ Mock.js 是一款前端开发中拦截Ajax请求再生成随机数据响应的工具.可以用来模拟服务器响应. 优点是非常简单方便, 无侵入性, 基本覆盖常用的接口数据类型. ...
- mock的使用二(根据数据模板生成模拟数据)
Mock.mock( rurl?, rtype?, template|function( options ) ) 根据数据模板生成模拟数据. Mock.mock( template ) 根据数据模板生 ...
- 在java中调用mockjs生成模拟数据
一.手写版 在前端有个模拟数据的神器 Mock.js 能生成随机数据,拦截 Ajax 请求,然后我觉得他的这个生成随机数据不错.然后我就到度娘一顿操作,没找到类似的java实现,于是就有了下面的代码: ...
- js 选择图片生成base64数据
<!doctype html> <html> <head> <meta charset="utf-8"> <meta http ...
- 使用Faker库生成模拟数据
一.相关文档 该库在laravel框架中默认已经存在,无需手动进行安装.使用参考文档: https://packagist.org/packages/fzaninotto/faker 二.简单示例 & ...
- 让前端独立于后端进行开发,模拟数据生成器Mock.js
让前端独立于后端进行开发,模拟数据生成器Mock.jsMock.js 是一款模拟数据生成器,旨在帮助前端攻城师独立于后端进行开发,帮助编写单元测试. Home · nuysoft/Mock Wiki ...
- 【vue】生成接口模拟数据
目录 方案一:自定义模拟数据 Step1 创建json文件 Step2 在 vue.config.js 中配置 Step3 在组件中使用 (方式一) Step3 封装api (方式二) Step4 在 ...
- Mockjs,模拟数据生成器
(推荐使用)Mock.js是一款模拟数据生成器,旨在帮助前端攻城师独立于后端进行开发,帮助编写单元测试. 提供了以下模拟功能: 1. 根据数据模板生成模拟数据. 2. 模拟Ajax请求,生成并返回模拟 ...
- mock.js的运用
一:概念 Mock.js是一款模拟数据生成器,旨在帮助前端攻城师独立于后端进行开发,帮助编写单元测试.提供了以下模拟功能: 根据数据模板生成模拟数据 模拟 Ajax 请求,生成并返回模拟数据 基于 H ...
随机推荐
- 一文搞懂drag&drop浏览器拖放功能的实现
拖放功能,即将一个元素从一个区域,通过拖拽,放置到另一个区域.常见的应用是将文件或图片从一个区域,拖放到另一个区域.中文常常把这表述成拖拽,实际上拖拽的描述并不准确,应该叫拖放,因为drag事件和dr ...
- SqlServer2008R2 在开始菜单中找不到配置管理器
直接找到C:\Windows\SysWOW64\SQLServerManager10.msc,打开即可.
- 应急响应--linux入侵排查
- Linux查看文件指定行数内容与查找文件内容
Linux查看文件指定行数内容 1.tail date.log 输出文件末尾的内容,默认10行 tail -20 date.log 输出最后20行的内容 tail -n -20 date.log 输出 ...
- WEB服务与NGINX(25)- LNMP架构-WEB集群部署phpmyadmin
目录 1 LNMP架构-WEB集群部署phpmyadmin 1.1 WEB集群架构需求分析 1.2 WEB集群架构环境 1.3 部署mariadb 1.4 部署web服务器nginx 1.5 部署re ...
- web3.js:使用eth包
原文在这里 简介 web3-eth包提供了一套强大的功能,可以与以太坊区块链和智能合约进行交互.在本教程中,我们将指导您如何使用web3.js版本4的web3-eth包的基础知识.我们将在整个示例中使 ...
- JDK源码阅读-------自学笔记(二十一)(java.util.ArrayList详细版集合类)
一.前景提要 本人经历了IT行业的多种类型企业,外包/创业小公司/中型公司,一步步成长起来,现在可以给大家透露下为什么进大企业在IT行业是重要的: 在外包公司,你要做的就是对接别人写好的接口,然后按照 ...
- PCF 的 Npcf_PolicyAuthorization 服务化接口
目录 文章目录 目录 引用 前文列表 术语 PCF Npcf_PolicyAuthorization 服务化操作类型 服务化接口参数类型 创建 Application Session Context: ...
- openstack以后需要研究一下的知识
1. openvt是一个用于在虚拟终端上启动程序的命令行工具.它允许用户在一个新的虚拟终端(VT)上启动一个程序,并将标准输入.输出和错误输出定向到该终端. openvt的用法如下: 打开一个虚拟终端 ...
- cent browser 百分浏览器不能使用剪切板复制粘贴
cent browser 百分浏览器不能使用剪切板复制粘贴,查看剪切板的文本和图像. 解决方法: 1.进入设置-隐私设置和安全性-网站设置 2.查看各网站的权限及储存的数据 3.搜索你的网站,点击重置 ...