一个日牯子
Home
Tags
GitHub
Author
2017-08-10
SVG
HTML
PDF
C
o
n
t
e
n
t
s
1
使
用
S
p
r
i
n
g
C
l
o
u
d
C
o
n
t
r
a
c
t
进
行
契
约
测
试
框
架
闲
话
编
程
微
服
务
C
o
n
t
e
n
t
s
研
究
了
一
下
契
约
测
试
,
这
个
概
念
听
着
很
高
端
,
其
实
解
决
的
是
一
个
很
古
老
的
问
题
:
系
统
间
的
接
口
定
义
。
以
前
我
们
做
系
统
同
其
他
系
统
对
接
的
时
候
需
要
定
义
接
口
,
需
要
去
设
计
,
去
确
认
;
尤
其
是
当
下
微
服
务
比
较
盛
行
的
时
候
,
我
们
自
己
的
系
统
之
间
也
增
加
了
接
口
,
伴
随
着
敏
捷
开
发
的
流
程
,
很
多
时
候
接
口
在
一
开
始
根
本
都
不
会
去
设
计
,
想
到
哪
改
到
哪
于
是
就
出
现
了
所
谓
的
契
约
测
试
的
东
西
。
先
来
说
说
契
约
测
试
解
决
的
问
题
吧
:
在
依
赖
的
接
口
没
有
实
现
的
时
候
可
以
用
模
拟
可
以
测
试
自
身
的
接
口
是
否
满
足
接
口
定
义
和
都
以
契
约
为
准
,
但
接
口
有
变
动
时
修
改
契
约
,
否
则
测
试
通
不
过
可
以
对
边
界
进
行
测
试
大
概
就
是
这
样
吧
,
我
觉
得
前
两
条
是
最
重
要
的
,
举
个
例
子
,
比
如
我
们
有
一
个
的
服
务
,
用
来
根
据
车
辆
底
盘
号
)
来
获
取
车
辆
的
信
息
;
一
个
的
服
务
需
要
调
用
这
个
服
务
来
获
取
客
户
的
车
辆
信
息
。
我
们
的
接
口
如
下
:
@
G
e
t
M
a
p
p
i
n
g
(
"
/
v
e
h
i
c
l
e
/
{
v
i
n
}
"
)
V
e
h
i
c
l
e
D
e
t
a
i
l
g
e
t
V
e
h
i
c
l
e
D
e
t
a
i
l
(
@
P
a
t
h
V
a
r
i
a
b
l
e
S
t
r
i
n
g
v
i
n
)
{
V
e
h
i
c
l
e
D
e
t
a
i
l
i
t
e
m
=
t
h
i
s
.
v
e
h
i
c
l
e
S
e
r
v
i
c
e
.
g
e
t
V
e
h
i
c
l
e
(
v
i
n
)
;
i
f
(
i
t
e
m
=
=
n
u
l
l
)
t
h
r
o
w
n
e
w
V
e
h
i
c
l
e
N
o
t
F
o
u
n
d
E
x
c
e
p
t
i
o
n
(
)
;
r
e
t
u
r
n
i
t
e
m
;
}
我
们
在
服
务
中
定
义
一
个
契
约
:
C
o
n
t
r
a
c
t
.
m
a
k
e
{
r
e
q
u
e
s
t
{
m
e
t
h
o
d
'
G
E
T
'
u
r
l
v
a
l
u
e
(
'
/
v
e
h
i
c
l
e
/
W
D
C
1
6
6
0
6
3
1
A
7
5
0
6
8
9
0
'
)
}
r
e
s
p
o
n
s
e
{
s
t
a
t
u
s
2
0
0
b
o
d
y
(
[
v
i
n
:
'
W
D
C
1
6
6
0
6
3
1
A
7
5
0
6
8
9
0
'
,
b
r
a
n
d
:
'
A
u
d
i
X
5
'
,
o
w
n
e
r
:
'
J
a
m
e
s
王
'
,
r
e
g
i
s
t
e
r
e
d
D
a
t
e
:
1
5
0
2
3
4
7
6
6
7
0
0
0
,
m
i
l
e
a
g
e
:
1
2
0
0
]
)
h
e
a
d
e
r
s
{
h
e
a
d
e
r
(
'
C
o
n
t
e
n
t
-
T
y
p
e
'
:
v
a
l
u
e
(
p
r
o
d
u
c
e
r
(
r
e
g
e
x
(
'
a
p
p
l
i
c
a
t
i
o
n
/
j
s
o
n
.
*
'
)
)
,
c
o
n
s
u
m
e
r
(
'
a
p
p
l
i
c
a
t
i
o
n
/
j
s
o
n
'
)
C
o
n
t
e
n
t
s
2
)
)
}
}
}
这
样
我
们
在
执
行
的
g
e
n
e
r
a
t
e
C
o
n
t
r
a
c
t
T
e
s
t
s
任
务
的
时
候
会
自
动
生
成
一
个
契
约
测
试
,
我
们
在
测
试
服
务
的
时
候
,
只
需
要
我
们
的
,
返
回
对
应
的
模
拟
信
息
:
@
B
e
f
o
r
e
p
u
b
l
i
c
v
o
i
d
s
e
t
U
p
(
)
t
h
r
o
w
s
E
x
c
e
p
t
i
o
n
{
V
e
h
i
c
l
e
D
e
t
a
i
l
i
=
n
e
w
V
e
h
i
c
l
e
D
e
t
a
i
l
(
)
;
i
.
s
e
t
V
i
n
(
"
W
D
C
1
6
6
0
6
3
1
A
7
5
0
6
8
9
0
"
)
;
i
.
s
e
t
O
w
n
e
r
(
"
J
a
m
e
s
王
"
)
;
i
.
s
e
t
B
r
a
n
d
(
"
A
u
d
i
X
5
"
)
;
i
.
s
e
t
R
e
g
i
s
t
e
r
e
d
D
a
t
e
(
n
e
w
D
a
t
e
(
1
5
0
2
3
4
7
6
6
7
0
0
0
L
)
)
;
i
.
s
e
t
M
i
l
e
a
g
e
(
1
2
0
0
)
;
R
e
s
t
A
s
s
u
r
e
d
M
o
c
k
M
v
c
.
w
e
b
A
p
p
C
o
n
t
e
x
t
S
e
t
u
p
(
c
o
n
t
e
x
t
)
;
g
i
v
e
n
(
v
e
h
i
c
l
e
S
e
r
v
i
c
e
.
g
e
t
V
e
h
i
c
l
e
(
"
W
D
C
1
6
6
0
6
3
1
A
7
5
0
6
8
9
0
"
)
)
.
w
i
l
l
R
e
t
u
r
n
(
i
)
;
}
刚
刚
的
契
约
是
一
个
很
固
定
的
数
据
,
我
们
还
可
以
加
上
正
则
表
达
式
的
检
测
:
C
o
n
t
r
a
c
t
.
m
a
k
e
{
r
e
q
u
e
s
t
{
m
e
t
h
o
d
'
G
E
T
'
u
r
l
v
a
l
u
e
(
c
o
n
s
u
m
e
r
(
r
e
g
e
x
(
'
/
v
e
h
i
c
l
e
/
[
A
-
Z
0
-
9
]
{
1
8
}
'
)
)
,
p
r
o
d
u
c
e
r
(
'
/
v
e
h
i
c
l
e
/
W
D
C
1
6
6
0
6
3
1
A
7
5
0
6
8
9
0
'
)
)
}
r
e
s
p
o
n
s
e
{
s
t
a
t
u
s
2
0
0
b
o
d
y
(
[
v
i
n
:
$
(
p
r
o
d
u
c
e
r
(
r
e
g
e
x
(
/
[
A
-
Z
0
-
9
]
{
1
8
}
/
)
)
)
,
b
r
a
n
d
:
$
(
p
r
o
d
u
c
e
r
(
a
n
y
N
o
n
B
l
a
n
k
S
t
r
i
n
g
(
)
)
)
,
o
w
n
e
r
:
$
(
p
r
o
d
u
c
e
r
(
a
n
y
N
o
n
B
l
a
n
k
S
t
r
i
n
g
(
)
)
)
,
r
e
g
i
s
t
e
r
e
d
D
a
t
e
:
$
(
p
r
o
d
u
c
e
r
(
r
e
g
e
x
(
/
[
1
-
9
]
[
0
-
9
]
{
1
1
,
1
2
}
/
)
)
)
,
m
i
l
e
a
g
e
:
$
(
p
r
o
d
u
c
e
r
(
r
e
g
e
x
(
/
[
1
-
9
]
[
0
-
9
]
{
0
,
1
0
}
/
)
)
)
]
)
h
e
a
d
e
r
s
{
h
e
a
d
e
r
(
'
C
o
n
t
e
n
t
-
T
y
p
e
'
:
v
a
l
u
e
(
p
r
o
d
u
c
e
r
(
r
e
g
e
x
(
'
a
p
p
l
i
c
a
t
i
o
n
/
j
s
o
n
.
*
'
)
)
,
c
o
n
s
u
m
e
r
(
'
a
p
p
l
i
c
a
t
i
o
n
/
j
s
o
n
'
)
)
)
}
}
}
以
及
异
常
情
况
下
的
测
试
:
C
o
n
t
r
a
c
t
.
m
a
k
e
{
r
e
q
u
e
s
t
{
m
e
t
h
o
d
'
G
E
T
'
C
o
n
t
e
n
t
s
3
u
r
l
v
a
l
u
e
(
c
o
n
s
u
m
e
r
(
r
e
g
e
x
(
'
/
v
e
h
i
c
l
e
/
\
\
w
.
+
'
)
)
,
p
r
o
d
u
c
e
r
(
'
/
v
e
h
i
c
l
e
/
X
X
X
X
X
'
)
)
}
r
e
s
p
o
n
s
e
{
s
t
a
t
u
s
4
0
4
}
}
这
样
每
一
个
文
件
都
会
对
应
着
生
成
一
个
测
试
,
达
到
我
们
测
试
的
目
的
。
那
么
,
对
于
客
户
端
来
说
,
怎
么
测
试
呢
?
很
简
单
,
我
们
执
行
的
i
n
s
t
a
l
l
命
令
,
会
把
生
成
的
包
放
到
本
地
的
源
中
,
我
们
在
客
户
端
测
试
的
时
候
可
以
这
么
写
:
@
R
u
n
W
i
t
h
(
S
p
r
i
n
g
R
u
n
n
e
r
.
c
l
a
s
s
)
@
S
p
r
i
n
g
B
o
o
t
T
e
s
t
@
A
u
t
o
C
o
n
f
i
g
u
r
e
S
t
u
b
R
u
n
n
e
r
(
i
d
s
=
"
c
o
m
.
r
i
g
u
z
:
f
o
o
:
+
:
s
t
u
b
s
:
1
0
0
0
0
"
,
w
o
r
k
O
f
f
l
i
n
e
=
t
r
u
e
)
p
u
b
l
i
c
c
l
a
s
s
C
u
s
t
o
m
e
r
S
e
r
v
i
c
e
T
e
s
t
{
@
A
u
t
o
w
i
r
e
d
p
r
i
v
a
t
e
C
u
s
t
o
m
e
r
S
e
r
v
i
c
e
c
u
s
t
o
m
e
r
S
e
r
v
i
c
e
;
@
T
e
s
t
p
u
b
l
i
c
v
o
i
d
s
h
o
u
l
d
R
e
t
u
r
n
C
u
s
t
o
m
e
r
D
e
t
a
i
l
(
)
{
C
u
s
t
o
m
e
r
I
n
f
o
i
n
f
o
=
t
h
i
s
.
c
u
s
t
o
m
e
r
S
e
r
v
i
c
e
.
g
e
t
C
u
s
t
o
m
e
r
I
n
f
o
(
"
1
2
3
"
)
;
S
y
s
t
e
m
.
o
u
t
.
p
r
i
n
t
l
n
(
i
n
f
o
)
;
a
s
s
e
r
t
E
q
u
a
l
s
(
1
,
i
n
f
o
.
g
e
t
V
e
h
i
c
l
e
s
(
)
.
s
i
z
e
(
)
)
;
/
/
.
.
.
}
}
对
应
着
~
/
.
m
2
/
r
e
p
o
s
i
t
o
r
y
/
c
o
m
/
r
i
g
u
z
/
f
o
o
/
1
.
0
-
S
N
A
P
S
H
O
T
/
f
o
o
-
1
.
0
-
S
N
A
P
S
H
O
T
-
s
t
u
b
s
.
j
a
r
,
+
表
示
取
最
新
版
本
,
1
0
0
0
0
是
端
口
号
,
也
就
是
模
拟
出
了
一
个
远
程
的
服
务
端
。
这
样
如
果
契
约
有
修
改
的
话
,
取
到
新
的
契
约
包
也
会
跟
着
修
改
了
。
另
外
,
如
果
单
纯
的
想
模
拟
一
个
服
务
端
怎
么
办
?
有
办
法
,
我
们
在
中
执
行
的
g
e
n
e
r
a
t
e
C
l
i
e
n
t
S
t
u
b
s
命
令
后
,
会
生
成
一
个
目
录
,
在
b
u
i
l
d
/
s
t
u
b
s
/
.
.
.
.
下
面
。
里
面
有
一
些
文
件
,
例
如
我
们
的
:
{
"
i
d
"
:
"
5
d
d
4
7
b
8
1
-
a
1
8
4
-
4
b
9
e
-
b
e
0
2
-
b
6
e
2
2
c
4
0
9
c
8
1
"
,
"
r
e
q
u
e
s
t
"
:
{
"
u
r
l
"
:
"
/
v
e
h
i
c
l
e
/
W
D
C
1
6
6
0
6
3
1
A
7
5
0
6
8
9
0
"
,
"
m
e
t
h
o
d
"
:
"
G
E
T
"
}
,
"
r
e
s
p
o
n
s
e
"
:
{
"
s
t
a
t
u
s
"
:
2
0
0
,
"
b
o
d
y
"
:
"
{
\
"
v
i
n
\
"
:
\
"
W
D
C
1
6
6
0
6
3
1
A
7
5
0
6
8
9
0
\
"
,
\
"
b
r
a
n
d
\
"
:
\
"
A
u
d
i
X
5
\
"
,
\
"
o
w
n
e
r
\
"
:
\
"
J
a
m
e
s
\
\
u
7
3
8
b
\
"
,
\
"
r
e
g
i
s
t
e
r
e
d
D
a
t
e
\
"
:
1
5
0
2
3
4
7
6
6
7
0
0
0
,
\
"
m
i
l
e
a
g
e
\
"
:
1
2
0
0
}
"
,
"
h
e
a
d
e
r
s
"
:
{
"
C
o
n
t
e
n
t
-
T
y
p
e
"
:
"
a
p
p
l
i
c
a
t
i
o
n
/
j
s
o
n
"
C
o
n
t
e
n
t
s
4
}
,
"
t
r
a
n
s
f
o
r
m
e
r
s
"
:
[
"
r
e
s
p
o
n
s
e
-
t
e
m
p
l
a
t
e
"
]
}
,
"
u
u
i
d
"
:
"
5
d
d
4
7
b
8
1
-
a
1
8
4
-
4
b
9
e
-
b
e
0
2
-
b
6
e
2
2
c
4
0
9
c
8
1
"
}
我
们
可
以
通
过
来
启
动
一
个
模
拟
的
服
务
端
。
j
a
v
a
-
j
a
r
w
i
r
e
m
o
c
k
-
s
t
a
n
d
a
l
o
n
e
-
2
.
7
.
1
.
j
a
r
#
启
动
后
会
自
动
创
建
一
个
m
a
p
p
i
n
g
s
目
录
,
把
我
们
生
成
的
m
a
p
p
i
n
g
s
目
录
中
的
内
容
拷
贝
进
去
,
再
重
新
运
行
即
可
这
样
访
问
h
t
t
p
:
/
/
l
o
c
a
l
h
o
s
t
:
8
0
8
0
/
v
e
h
i
c
l
e
/
W
D
C
1
6
6
0
6
3
1
A
7
5
0
6
8
9
0
就
可
以
得
到
我
们
的
契
约
里
面
写
的
模
拟
数
据
了
。
好
了
,
如
果
有
疑
问
请
参
考
完
整
的
代
码
,
建
议
参
考
末
尾
的
参
考
文
章
,
本
文
不
过
是
跟
着
写
了
一
下
而
已
。
总
结
一
下
吧
,
其
实
并
没
有
感
觉
到
有
多
高
端
,
不
过
很
适
用
与
微
服
务
敏
捷
开
发
这
种
场
合
。
来
说
说
我
觉
得
不
足
的
地
方
:
契
约
测
试
依
然
是
测
试
,
无
法
替
代
设
计
,
如
果
设
计
的
接
口
是
一
坨
测
试
的
再
好
又
有
什
么
呢
;
并
不
是
反
对
测
试
,
而
是
感
觉
但
凡
重
视
测
试
的
同
时
容
易
轻
视
设
计
(
或
者
说
测
试
能
力
要
比
设
计
能
力
强
太
多
如
果
是
同
三
方
系
统
对
接
,
如
何
来
操
作
呢
?
对
于
一
些
其
他
的
客
户
端
就
勉
为
其
难
了
,
比
如
的
客
户
端
,
无
法
使
用
生
成
的
文
件
,
客
户
端
怎
么
保
证
得
到
的
东
西
是
自
己
想
要
的
结
果
参
考
文
章
HTML view coming soon.
Download PDF
for the full formatted version.