Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
E
easy_mock_cli_template
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
潘亚楠
easy_mock_cli_template
Commits
1ba1f8c2
提交
1ba1f8c2
authored
5月 23, 2017
作者:
chuangker
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: 支持 RESTful
上级
b43df22e
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
79 行增加
和
23 行删除
+79
-23
index.js
example/api/demo/index.js
+16
-15
util.js
example/api/util.js
+15
-1
demo.js
example/demo.js
+7
-1
index.js
helper/index.js
+21
-1
util.js
template/common/util.js
+15
-1
index.js
template/cover/index.js
+4
-3
instance.js
template/init/instance.js
+1
-1
没有找到文件。
example/api/demo/index.js
浏览文件 @
1ba1f8c2
import
instance
from
'./instance'
;
import
{
convertRESTAPI
}
from
'../util'
;
/** swagger test */
function
swagger
(
opts
)
{
function
swagger
_get
(
opts
)
{
return
instance
({
method
:
'get'
,
url
:
'/swagger'
,
url
:
'/swagger'
,
opts
:
opts
});
}
/** 支持接口代理的mock,试试在 url 上加 ?s={数字} */
function
proxy
(
opts
)
{
function
proxy
_get
(
opts
)
{
return
instance
({
method
:
'get'
,
url
:
'/proxy'
,
url
:
'/proxy'
,
opts
:
opts
});
}
/** 带随机数据的mock */
function
mock
(
opts
)
{
function
mock
_get
(
opts
)
{
return
instance
({
method
:
'get'
,
url
:
'/mock'
,
url
:
'/mock'
,
opts
:
opts
});
}
/** 根据请求参数返回指定数据,试试在 url 上加 ?name={任意值} */
function
query
(
opts
)
{
function
query
_get
(
opts
)
{
return
instance
({
method
:
'get'
,
url
:
'/query'
,
url
:
'/query'
,
opts
:
opts
});
}
/** 支持 restful 的mock,替换 id 试试 */
function
restful_id_list
(
opts
)
{
function
restful_id_list
_get
(
opts
)
{
return
instance
({
method
:
'get'
,
url
:
'/restful/:id/list'
,
url
:
convertRESTAPI
(
'/restful/:id/list'
,
opts
)
,
opts
:
opts
});
}
export
{
swagger
,
proxy
,
mock
,
query
,
restful_id_list
swagger
_get
,
proxy
_get
,
mock
_get
,
query
_get
,
restful_id_list
_get
};
example/api/util.js
浏览文件 @
1ba1f8c2
...
...
@@ -13,6 +13,20 @@ function createAPI(baseURL) {
};
}
function
convertRESTAPI
(
url
,
opts
)
{
if
(
!
opts
||
!
opts
.
path
)
return
url
;
const
pathKeys
=
Object
.
keys
(
opts
.
path
);
pathKeys
.
forEach
((
key
)
=>
{
const
r
=
new
RegExp
(
'(:'
+
key
+
'|{'
+
key
+
'})'
,
'g'
);
url
=
url
.
replace
(
r
,
opts
.
path
[
key
]);
});
return
url
;
}
export
{
createAPI
createAPI
,
convertRESTAPI
};
example/demo.js
浏览文件 @
1ba1f8c2
import
*
as
api
from
'./api'
;
api
.
demo
.
swagger
();
api
.
demo
.
restful_id_list_g
({
path
:
{
id
:
1
}
}).
then
((
res
)
=>
{
console
.
log
(
res
.
data
);
});
helper/index.js
浏览文件 @
1ba1f8c2
exports
.
convertUrl
=
function
(
url
)
{
const
convertUrl
=
exports
.
convertUrl
=
function
(
url
)
{
// /restful/:id/:list/{id} -> restful_id_list_id
// /restful/:id/:list/{id}.json -> restful_id_list_id
const
_url
=
url
...
...
@@ -7,3 +7,23 @@ exports.convertUrl = function (url) {
.
filter
(
value
=>
!!
value
).
join
(
'_'
);
return
_url
.
split
(
'.'
)[
0
];
};
exports
.
convertMethod
=
function
(
mock
)
{
// 防止重名
// restful_id_list_id => restful_id_list_id_g
// or
// restful_id_list_id => restful_id_list_id_p
return
convertUrl
(
mock
.
url
)
+
'_'
+
mock
.
method
.
toLowerCase
();
};
exports
.
joinUrl
=
function
()
{
// https://www.easy-mock.com//mock/.... => https://www.easy-mock.com/mock/....
let
url
=
[].
slice
.
call
(
arguments
,
0
).
join
(
'/'
);
url
=
url
.
replace
(
/:
\/
/g
,
'://'
);
url
=
url
.
replace
(
/
([^
:
\s\%\3\A])\/
+/g
,
'$1/'
);
return
url
;
}
exports
.
isREST
=
function
(
url
)
{
return
/
(
:|{|}
)
/
.
test
(
url
);
}
template/common/util.js
浏览文件 @
1ba1f8c2
...
...
@@ -13,6 +13,20 @@ function createAPI(baseURL) {
};
}
function
convertRESTAPI
(
url
,
opts
)
{
if
(
!
opts
||
!
opts
.
path
)
return
url
;
const
pathKeys
=
Object
.
keys
(
opts
.
path
);
pathKeys
.
forEach
((
key
)
=>
{
const
r
=
new
RegExp
(
'(:'
+
key
+
'|{'
+
key
+
'})'
,
'g'
);
url
=
url
.
replace
(
r
,
opts
.
path
[
key
]);
});
return
url
;
}
export
{
createAPI
createAPI
,
convertRESTAPI
};
template/cover/index.js
浏览文件 @
1ba1f8c2
import
instance
from
'./instance'
;
import
{
convertRESTAPI
}
from
'<%- $$.relative("util") %>'
;
<%
_
.
forEach
(
data
.
mocks
,
function
(
mock
){
%>
/** <%- mock.description %> */
function
<%-
$$
.
convert
Url
(
mock
.
url
)
%>
(
opts
)
{
function
<%-
$$
.
convert
Method
(
mock
)
%>
(
opts
)
{
return
instance
({
method
:
'<%- mock.method %>'
,
url
:
'<%- mock.url %>'
,
url
:
<%
if
(
$$
.
isREST
(
mock
.
url
))
{
%>
convertRESTAPI
(
'<%- mock.url %>'
,
opts
)
<%
}
else
{
%>
'<%- mock.url %>'
<%
}
%>
,
opts
:
opts
});
}
<%
})
%>
export
{
<%
_
.
forEach
(
data
.
mocks
,
function
(
mock
,
i
){
%>
<%-
$$
.
convert
Url
(
mock
.
url
)
%><%
if
(
data
.
mocks
.
length
-
1
!==
i
)
{
%>
,
<%
}
%><%
})
%>
<%-
$$
.
convert
Method
(
mock
)
%><%
if
(
data
.
mocks
.
length
-
1
!==
i
)
{
%>
,
<%
}
%><%
})
%>
};
template/init/instance.js
浏览文件 @
1ba1f8c2
...
...
@@ -2,7 +2,7 @@ import { createAPI } from '<%- $$.relative("util") %>';
import
config
from
'<%- $$.relative("config") %>'
;
const
baseUrl
=
{
mock
:
'
https://www.easy-mock.com/mock/<%- data.project._id %><%- data.project.url
%>'
,
mock
:
'
<%- $$.joinUrl(config.host, "mock", data.project._id, data.project.url)
%>'
,
dev
:
''
,
pre
:
''
,
prod
:
''
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论