基于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 ...
随机推荐
- 单体项目使用Spring Security实现登陆认证授权
前端可以根据权限信息控制菜单和页面展示,操作按钮的显示.但这并不够,如果有人拿到了接口,绕过了页面直接操作数据,这是很危险的.所以我们需要在后端也加入权限控制,只有拥有操作权限,该接口才能被授权访问. ...
- C# winform GDI+ 五子棋 (一):基本界面和胜负判断
棋盘和棋子采用GDI+画上去的.棋盘18*18.棋子是用DrawElipse画的,白棋和黑棋分两个List集合存储,方便判断五子连线的情况. 主要说一下,五子连线的思路,把集合按行和按列以及按正斜和反 ...
- 【C# mvc5】使用mvc5 +bootstrap+EF6搭建一个权限管理系统的心得体会
使用mvc5的体会,是 业务代码都可以独立分层,比如搭配多层架构,通过controller控制器传递需要渲染的列表,按钮.接受前端返回的实体模型等.总之我觉得要在前端渲染的数据可以写在controll ...
- [NOIP2004 普及组] 火星人
传送锚点:https://www.luogu.com.cn/problem/P1088 题目描述 人类终于登上了火星的土地并且见到了神秘的火星人.人类和火星人都无法理解对方的语言,但是我们的科学家发明 ...
- Json.Net Deserialize a Collection from BSON
Deserialize a Collection from BSON (newtonsoft.com) This sample sets ReadRootValueAsArray to true so ...
- WPF开发快速入门【4】自定义控件与用户控件
概述 本文描述WPF的自定义控件和用户控件. 自定义控件 前面文章介绍了WPF的ControlTemplate,当我们对系统控件自带的样式不太满意时,我们可以通过控件模板自定义用户的样式,以Butto ...
- OSGQt编译安装
OSGQt编译安装 效果演示 1.准备工作 最新版的osg中不附带osgQt源码,所以需要单独下载编译 在编译osgQt前需要先编译osg源码,osg编译安装看这里 编译osgQt的环境与之前编译os ...
- ReplayKit2 采集音视频回调格式分析
一.iOS中的音视频都是采用一个叫做CMSampleBuffer的格式封装的 比如回调的App音频 Printing description of sampleBuffer: CMSampleBuff ...
- windows隐藏文件如何查看
1.组织 2.查看 3.显示隐藏文件
- css圆圈慢慢放大
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...