基于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 ...
随机推荐
- 后端每日一题 2:DNS 解析过程
本文首发于公众号:腐烂的橘子 本文梗概: DNS 是什么,有什么作用 一条 DNS 记录是什么样的 DNS 域名解析原理 DNS 服务器如何抵御攻击 DNS 是什么,有什么作用 DNS(Domain ...
- 数据表删除DROP TRUNCATE DELETE区别
总的来说,DROP 用于删除整个数据库对象(表结构和数据全部删除),DELETE 用于删除表中的数据,而 TRUNCATE 也是删除表中的数据,但比 DELETE 更快,且无法指定条件删除.根据需求, ...
- java引入jep实现四则运算包含负数且规范两位小数
1.在pom中引入依赖 <!--四则运算--> <dependency> <groupId>jep</groupId> <artifactId&g ...
- 特工17Agent17汉化版游戏破解金币方法修改破解金币的增加方法
又是一个renpy游戏,昨晚搞了半个小时搞定的,其实这个游戏要赚钱也不难,就是点点点就可以了,但是我觉得还是挺费劲的,因为好多道具都很贵,攒钱又不怎么容易,花钱的地方还挺多的,所以干脆不如直接破解了算 ...
- 茴香豆 RAG 平台实操-书生浦语大模型实战营第二期第3节作业
书生浦语大模型实战营第二期第3节作业 本页面包括实战营第二期第三节作业的全部操作步骤.如果需要知道RAG相关知识请访问学习笔记. 作业要求 基础作业 在茴香豆 Web 版中创建自己领域的知识问答助手 ...
- LLM生态下爬虫程序的现状与未来
最近出现一批与LLM有关的新的爬虫框架,一类是为LLM提供内容抓取解析的,比如 Jina Reader 和 FireCrawl ,可以将抓取的网页解析为markdown这样的对LLM友好的内容,例如m ...
- grid布局方案
前言 CSS网格布局用于将页面分割成数个主要区域,或者用来定义组件内部元素间大小.位置和图层之间的关系.像表格一样,网格布局让我们能够按行或列来对齐元素. 但是,使用CSS网格可能还是比CSS表格更容 ...
- Java简单实现MQ架构和思路01
实现一个 MQ(消息队列)架构可以涉及到很多方面,包括消息的生产和消费.消息的存储和传输.消息的格式和协议等等.下面是一个简单的 MQ 架构的实现示例,仅供参考: 定义消息格式和协议:我们可以定义一个 ...
- MFC之多字节和宽字节的总结
ANSI字符集 所支持的就是多字节的也叫窄字节,类型来说就对应char类型.Unicode字符集 也叫宽字符集 所支持的就是宽字符集,从类型上来说就是 wchar_t类型.gb2312是中国的编码, ...
- MFC之ListControl选中行删除
if (m_list.GetSelectedCount() > 0) { POSITION pos= m_list.GetFirstSelectedItemPosition(); while ( ...