You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
141 lines
3.5 KiB
141 lines
3.5 KiB
import mockjs from 'mockjs';
|
|
import { getRule, postRule } from './mock/rule';
|
|
import { getActivities, getNotice, getFakeList } from './mock/api';
|
|
import { getFakeChartData } from './mock/chart';
|
|
import { getProfileBasicData } from './mock/profile';
|
|
import { getProfileAdvancedData } from './mock/profile';
|
|
import { getNotices } from './mock/notices';
|
|
import { format, delay } from 'roadhog-api-doc';
|
|
|
|
// 是否禁用代理
|
|
const noProxy = process.env.NO_PROXY === 'true';
|
|
|
|
// 代码中会兼容本地 service mock 以及部署站点的静态数据
|
|
const proxy = {
|
|
// 支持值为 Object 和 Array
|
|
'GET /api/currentUser': {
|
|
$desc: '获取当前用户接口',
|
|
$params: {
|
|
pageSize: {
|
|
desc: '分页',
|
|
exp: 2,
|
|
},
|
|
},
|
|
$body: {
|
|
name: 'Serati Ma',
|
|
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png',
|
|
userid: '00000001',
|
|
notifyCount: 12,
|
|
},
|
|
},
|
|
// GET POST 可省略
|
|
'GET /api/users': [
|
|
{
|
|
key: '1',
|
|
name: 'John Brown',
|
|
age: 32,
|
|
address: 'New York No. 1 Lake Park',
|
|
},
|
|
{
|
|
key: '2',
|
|
name: 'Jim Green',
|
|
age: 42,
|
|
address: 'London No. 1 Lake Park',
|
|
},
|
|
{
|
|
key: '3',
|
|
name: 'Joe Black',
|
|
age: 32,
|
|
address: 'Sidney No. 1 Lake Park',
|
|
},
|
|
],
|
|
'GET /api/project/notice': getNotice,
|
|
'GET /api/activities': getActivities,
|
|
'GET /api/rule': getRule,
|
|
'POST /api/rule': {
|
|
$params: {
|
|
pageSize: {
|
|
desc: '分页',
|
|
exp: 2,
|
|
},
|
|
},
|
|
$body: postRule,
|
|
},
|
|
'POST /api/forms': (req, res) => {
|
|
res.send({ message: 'Ok' });
|
|
},
|
|
'GET /api/tags': mockjs.mock({
|
|
'list|100': [{ name: '@city', 'value|1-100': 150, 'type|0-2': 1 }],
|
|
}),
|
|
'GET /api/fake_list': getFakeList,
|
|
'GET /api/fake_chart_data': getFakeChartData,
|
|
'GET /api/profile/basic': getProfileBasicData,
|
|
'GET /api/profile/advanced': getProfileAdvancedData,
|
|
'POST /api/login/account': (req, res) => {
|
|
const { password, userName, type } = req.body;
|
|
if (password === '888888' && userName === 'admin') {
|
|
res.send({
|
|
status: 'ok',
|
|
type,
|
|
currentAuthority: 'admin',
|
|
});
|
|
return;
|
|
}
|
|
if (password === '123456' && userName === 'user') {
|
|
res.send({
|
|
status: 'ok',
|
|
type,
|
|
currentAuthority: 'user',
|
|
});
|
|
return;
|
|
}
|
|
res.send({
|
|
status: 'error',
|
|
type,
|
|
currentAuthority: 'guest',
|
|
});
|
|
},
|
|
'POST /api/register': (req, res) => {
|
|
res.send({ status: 'ok', currentAuthority: 'user' });
|
|
},
|
|
'GET /api/notices': getNotices,
|
|
'GET /api/500': (req, res) => {
|
|
res.status(500).send({
|
|
timestamp: 1513932555104,
|
|
status: 500,
|
|
error: 'error',
|
|
message: 'error',
|
|
path: '/base/category/list',
|
|
});
|
|
},
|
|
'GET /api/404': (req, res) => {
|
|
res.status(404).send({
|
|
timestamp: 1513932643431,
|
|
status: 404,
|
|
error: 'Not Found',
|
|
message: 'No message available',
|
|
path: '/base/category/list/2121212',
|
|
});
|
|
},
|
|
'GET /api/403': (req, res) => {
|
|
res.status(403).send({
|
|
timestamp: 1513932555104,
|
|
status: 403,
|
|
error: 'Unauthorized',
|
|
message: 'Unauthorized',
|
|
path: '/base/category/list',
|
|
});
|
|
},
|
|
'GET /api/401': (req, res) => {
|
|
res.status(401).send({
|
|
timestamp: 1513932555104,
|
|
status: 401,
|
|
error: 'Unauthorized',
|
|
message: 'Unauthorized',
|
|
path: '/base/category/list',
|
|
});
|
|
},
|
|
};
|
|
|
|
export default (noProxy ? {} : delay(proxy, 1000));
|