Skip to content

Commit 3053800

Browse files
committed
Demo: MultiDataSource 中 APAuto: 新增支持在右侧 Response JSON key 后加 断言结果及纠错按钮
1 parent f52aae1 commit 3053800

File tree

3 files changed

+399
-74
lines changed

3 files changed

+399
-74
lines changed

APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/JSONResponse.js

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -476,6 +476,54 @@ var JSONResponse = {
476476
COMPARE_CODE_CHANGE: 11,
477477
COMPARE_THROW_CHANGE: 12,
478478

479+
getCompareShowObj: function(cmp, status, response) {
480+
var it = cmp;
481+
var p = cmp.path
482+
it.compareType = cmp.code;
483+
it.compareMessage = (StringUtil.isEmpty(p, true) ? '' : p + ' ') + (cmp.msg || '查看结果')
484+
switch (it.code) {
485+
case JSONResponse.COMPARE_ERROR:
486+
it.compareColor = 'red'
487+
it.hintMessage = (status != null && status != 200 ? status + ' ' : '') + '请求出错!'
488+
break;
489+
case JSONResponse.COMPARE_NO_STANDARD:
490+
it.compareColor = 'green'
491+
it.hintMessage = '确认正确后点击[对的,纠正]'
492+
break;
493+
case JSONResponse.COMPARE_KEY_MORE:
494+
case JSONResponse.COMPARE_VALUE_MORE:
495+
case JSONResponse.COMPARE_EQUAL_EXCEPTION:
496+
it.compareColor = 'green'
497+
it.hintMessage = '新增字段/新增值 等'
498+
break;
499+
case JSONResponse.COMPARE_LENGTH_CHANGE:
500+
case JSONResponse.COMPARE_VALUE_CHANGE:
501+
it.compareColor = 'blue'
502+
it.hintMessage = '值改变 等'
503+
break;
504+
case JSONResponse.COMPARE_VALUE_EMPTY:
505+
case JSONResponse.COMPARE_KEY_LESS:
506+
it.compareColor = 'orange'
507+
it.hintMessage = '缺少字段/整数变小数 等'
508+
break;
509+
case JSONResponse.COMPARE_FORMAT_CHANGE:
510+
case JSONResponse.COMPARE_NUMBER_TYPE_CHANGE:
511+
case JSONResponse.COMPARE_TYPE_CHANGE:
512+
case JSONResponse.COMPARE_CODE_CHANGE:
513+
case JSONResponse.COMPARE_THROW_CHANGE:
514+
var code = response == null ? null : response[JSONResponse.KEY_CODE]
515+
it.compareColor = 'red'
516+
it.hintMessage = (code != null && code != JSONResponse.CODE_SUCCESS
517+
? code + ' ' : (status != null && status != 200 ? status + ' ' : '')) + '状态码/异常/值类型 改变等'
518+
break;
519+
default:
520+
it.compareColor = 'white'
521+
it.hintMessage = '结果正确'
522+
break;
523+
}
524+
return it;
525+
},
526+
479527
/**测试compare: 对比 新的请求与上次请求的结果
480528
0-相同,无颜色;
481529
1-对象新增字段或数组新增值,绿色;
@@ -1635,6 +1683,85 @@ var JSONResponse = {
16351683
return tgt;
16361684
},
16371685

1686+
/**根据 APIJSON 引用赋值路径精准地修改值
1687+
*/
1688+
setValByPath: function(target, pathKeys, val, isTry) {
1689+
var depth = pathKeys == null ? 0 : pathKeys.length
1690+
if (depth <= 0) {
1691+
return target;
1692+
}
1693+
1694+
var tgt = target;
1695+
var parent = target;
1696+
for (var i = 0; i < depth - 1; i ++) {
1697+
var k = pathKeys[i];
1698+
if (k == null) {
1699+
return null;
1700+
}
1701+
k = decodeURI(k);
1702+
1703+
if (tgt instanceof Object) {
1704+
if (k == '') {
1705+
if (tgt instanceof Array) {
1706+
k = 0;
1707+
} else {
1708+
ks = Object.keys(tgt);
1709+
k = ks == null ? null : ks[0];
1710+
if (k == null) {
1711+
return null;
1712+
}
1713+
}
1714+
}
1715+
else {
1716+
if (tgt instanceof Array) {
1717+
try {
1718+
var n = Number.parseInt(k);
1719+
if (Number.isSafeInteger(n)) {
1720+
k = n >= 0 ? n : n + tgt.length;
1721+
}
1722+
} catch (e) {
1723+
}
1724+
}
1725+
}
1726+
1727+
parent = tgt;
1728+
tgt = tgt[k];
1729+
continue;
1730+
}
1731+
1732+
if (tgt == null) {
1733+
try {
1734+
var n = Number.parseInt(k);
1735+
if (Number.isSafeInteger(n)) {
1736+
k = n >= 0 ? n : n + tgt.length;
1737+
}
1738+
} catch (e) {
1739+
}
1740+
1741+
tgt = Number.isInteger(k) ? [] : {};
1742+
if (i == 0 && parent == null) {
1743+
parent = target = tgt;
1744+
} else {
1745+
parent[k] = tgt;
1746+
}
1747+
1748+
parent = tgt;
1749+
tgt = tgt[k];
1750+
1751+
continue;
1752+
}
1753+
1754+
if (isTry != true) {
1755+
throw new Error('setValByPath 语法错误,' + k + ': value 中 value 类型应该是 Object 或 Array !');
1756+
}
1757+
1758+
return null;
1759+
}
1760+
1761+
tgt[pathKeys[pathKeys.length - 1]] = val;
1762+
1763+
return target;
1764+
},
16381765

16391766
/**根据路径精准地更新测试标准中的键值对
16401767
*/

0 commit comments

Comments
 (0)