基于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 ...
随机推荐
- 关于Python中的None
关于Python中的None 注意到None这个类型是在做一道Python题目时,要求说如果传进函数的字符串是"None"则返回False,糟糕的是我并不知道如何判断是否是&quo ...
- 如何对一个新的 VSCode 配置 LaTeX
texlive 的安装件参考资料 [1]. 往 VSCode 里面装 LaTeX Workshop 插件,也可以直接搜 James-Yu.latex-workshop. Ctrl+Shift+P 打开 ...
- 三:瑞芯微OK3399-C开发板
场景一 给广告机加上一双智慧的眼睛,时刻关注这经过自己面前的每一个人,把他(她)们的性别.年龄.胖瘦.着装风格.经过频次.观看广告的时间.每个广告观看的人数等等一一记录下来,为广告机运营商.广告创业设 ...
- 01、Java 安全-反序列化基础
Java 反序列化基础 1.ObjectOutputStream 与 ObjectInputStream类 1.1.ObjectOutputStream类 java.io.ObjectOutputSt ...
- 大营销抽奖系统,DDD开发要如何建模?
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 大家好,我是技术UP主小傅哥. 经过5.1假期的一顿框框输出,终于完成了<大营销项目 ...
- 仿网易云音乐-微信小程序开发
1.很多时候要找到完整的API接口很难,但网易云音乐的数据API是可以得到完整的. 安装API:https://github.com/Binaryify/NeteaseCloudMusicApi,只需 ...
- 使用 Spacesniffer 找回 48G 系统存储空间的总结
前言 Spacesniffer 是一个免费的文件扫描工具,通过使用树状图可视化布局,可以立即了解大文件夹的位置,帮助用户处理找到这些文件夹 当前系统C盘空间 清理后系统C盘空间 下载 Spacesni ...
- MindSponge分子动力学模拟——体系控制(2024.05)
技术背景 在传统的分子动力学模拟软件中,对于分子体系的控制,例如控制体系的相对位置亦或是绝对位置,通常都是通过施加一些约束算法来实现的.例如用于限制化学键的LINCS算法,又比如水分子体系非常常用的S ...
- 【c++】const 限定符
#include <iostream> int main() { using namespace std; cout << "Hello World!\n" ...
- ASP.NET Core SignalR 概述
什么是 SignalR? ASP.NET Core SignalR 是一个开放源代码库,可用于简化向应用添加实时 Web 功能. 实时 Web 功能使服务器端代码能够将内容推送到客户端. 适合 Sig ...