Skip to content

Commit 8b625bb

Browse files
committed
文档中类型显示为Java类型;几个Util文件重命名;按面向对象封装js代码;新增License
1 parent 95980bc commit 8b625bb

File tree

8 files changed

+672
-598
lines changed

8 files changed

+672
-598
lines changed

apijson/CodeUtil.js

Lines changed: 329 additions & 333 deletions
Large diffs are not rendered by default.

apijson/JSONObject.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/*Copyright ©2017 TommyLemon(https://github.com/TommyLemon/APIJSONAuto)
2+
3+
Licensed under the Apache License, Version 2.0 (the "License");
4+
you may not use this file except in compliance with the License.
5+
You may obtain a copy of the License at
6+
7+
http://www.apache.org/licenses/LICENSE-2.0
8+
9+
Unless required by applicable law or agreed to in writing, software
10+
distributed under the License is distributed on an "AS IS" BASIS,
11+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
See the License for the specific language governing permissions and
13+
limitations under the License.*/
14+
15+
16+
/**common keys and functions for APIJSON object
17+
* @author Lemon
18+
*/
19+
var JSONObject = {
20+
TAG: 'JSONObject',
21+
22+
/**判断key是否为表名
23+
* @param key
24+
* @return
25+
*/
26+
isTableKey: function(key) {
27+
log(this.TAG, 'isTableKey typeof key = ' + (typeof key));
28+
return key != null && /^[A-Z][A-Za-z0-9_]*$/.test(key);
29+
},
30+
/**判断key是否为数组名
31+
* @param key
32+
* @return
33+
*/
34+
isArrayKey: function(key) {
35+
log(this.TAG, 'isArrayKey typeof key = ' + (typeof key));
36+
return key != null && key.endsWith('[]');
37+
}
38+
39+
}
40+
41+
//TODO 取消注释 Object.freeze(JSONObject) //不可修改

apijson/RequestUtil.js renamed to apijson/JSONRequest.js

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,23 @@
1-
/**
2-
* Created by Lemon on 17/5/8.
1+
/*Copyright ©2017 TommyLemon(https://github.com/TommyLemon/APIJSONAuto)
2+
3+
Licensed under the Apache License, Version 2.0 (the "License");
4+
you may not use this file except in compliance with the License.
5+
You may obtain a copy of the License at
6+
7+
http://www.apache.org/licenses/LICENSE-2.0
8+
9+
Unless required by applicable law or agreed to in writing, software
10+
distributed under the License is distributed on an "AS IS" BASIS,
11+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
See the License for the specific language governing permissions and
13+
limitations under the License.*/
14+
15+
16+
/**wrapper for request
17+
* @author Lemon
18+
* @use JSONRequest.request(...)
319
*/
20+
421
const TAG_REQUEST_UTIL = 'RequestUtil';
522

623
var URL_BASE = "http://39.108.143.172:8080"; // 基地址

apijson/JSONResponse.js

Lines changed: 166 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,166 @@
1+
/*Copyright ©2017 TommyLemon(https://github.com/TommyLemon/APIJSONAuto)
2+
3+
Licensed under the Apache License, Version 2.0 (the "License");
4+
you may not use JSONResponse file except in compliance with the License.
5+
You may obtain a copy of the License at
6+
7+
http://www.apache.org/licenses/LICENSE-2.0
8+
9+
Unless required by applicable law or agreed to in writing, software
10+
distributed under the License is distributed on an "AS IS" BASIS,
11+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
See the License for the specific language governing permissions and
13+
limitations under the License.*/
14+
15+
16+
/**parser for json response
17+
* @author Lemon
18+
*/
19+
20+
21+
//状态信息,非GET请求获得的信息<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
22+
23+
const CODE_SUCCESS = 200; //成功
24+
const CODE_UNSUPPORTED_ENCODING = 400; //编码错误
25+
const CODE_ILLEGAL_ACCESS = 401; //权限错误
26+
const CODE_UNSUPPORTED_OPERATION = 403; //禁止操作
27+
const CODE_NOT_FOUND = 404; //未找到
28+
const CODE_ILLEGAL_ARGUMENT = 406; //参数错误
29+
const CODE_NOT_LOGGED_IN = 407; //未登录
30+
const CODE_TIME_OUT = 408; //超时
31+
const CODE_CONFLICT = 409; //重复,已存在
32+
const CODE_CONDITION_ERROR = 412; //条件错误,如密码错误
33+
const CODE_UNSUPPORTED_TYPE = 415; //类型错误
34+
const CODE_OUT_OF_RANGE = 416; //超出范围
35+
const CODE_NULL_POINTER = 417; //对象为空
36+
const CODE_SERVER_ERROR = 500; //服务器内部错误
37+
38+
39+
const MSG_SUCCEED = "success"; //成功
40+
const MSG_SERVER_ERROR = "Internal Server Error!"; //服务器内部错误
41+
42+
43+
const KEY_CODE = "code";
44+
const KEY_MSG = "msg";
45+
const KEY_ID = "id";
46+
const KEY_ID_IN = KEY_ID + "{}";
47+
const KEY_COUNT = "count";
48+
const KEY_TOTAL = "total";
49+
50+
var JSONResponse = {
51+
TAG: 'JSONResponse',
52+
53+
/**是否成功
54+
* @param code
55+
* @return
56+
*/
57+
isSuccess: function(code) {
58+
return code == CODE_SUCCESS;
59+
},
60+
61+
/**校验服务端是否存在table
62+
* @param count
63+
* @return
64+
*/
65+
isExist: function(count) {
66+
return count > 0;
67+
},
68+
69+
70+
71+
72+
73+
/**格式化key名称
74+
* @param object
75+
* @return
76+
*/
77+
formatObject: function(object) {
78+
//太长查看不方便,不如debug log(JSONResponse.TAG, "format object = \n" + JSON.toJSONString(object));
79+
if (object == null || object == '') {
80+
log(JSONResponse.TAG, "format object == null || object == '' >> return object;");
81+
return object;
82+
}
83+
var formattedObject = {};
84+
85+
var value;
86+
for (var key in object) {
87+
value = object[key];
88+
89+
if (value instanceof Array) { // JSONArray,遍历来format内部项
90+
formattedObject[JSONResponse.replaceArray(key)] = JSONResponse.formatArray(value);
91+
}
92+
else if (value instanceof Object) { // JSONObject,往下一级提取
93+
formattedObject[JSONResponse.getSimpleName(key)] = JSONResponse.formatObject(value);
94+
}
95+
else { // 其它Object,直接填充
96+
formattedObject[JSONResponse.getSimpleName(key)] = value;
97+
}
98+
}
99+
100+
//太长查看不方便,不如debug log(JSONResponse.TAG, "format return formattedObject = " + JSON.toJSONString(formattedObject));
101+
return formattedObject;
102+
},
103+
104+
/**格式化key名称
105+
* @param array
106+
* @return
107+
*/
108+
formatArray: function(array) {
109+
//太长查看不方便,不如debug log(JSONResponse.TAG, "format array = \n" + JSON.toJSONString(array));
110+
if (array == null || array == '') {
111+
log(JSONResponse.TAG, "format array == null || array == '' >> return array;");
112+
return array;
113+
}
114+
var formattedArray = [];
115+
116+
var value;
117+
for (var i = 0; i < array.length; i++) {
118+
value = array[i];
119+
if (value instanceof Array) { // JSONArray,遍历来format内部项
120+
formattedArray.push(JSONResponse.formatArray(value));
121+
}
122+
else if (value instanceof Object) { // JSONObject,往下一级提取
123+
formattedArray.push(JSONResponse.formatObject(value));
124+
}
125+
else { // 其它Object,直接填充
126+
formattedArray.push(value);
127+
}
128+
}
129+
130+
//太长查看不方便,不如debug log(JSONResponse.TAG, "format return formattedArray = " + JSON.toJSONString(formattedArray));
131+
return formattedArray;
132+
},
133+
134+
/**替换key+KEY_ARRAY为keyList
135+
* @param key
136+
* @return getSimpleName(isArrayKey(key) ? getArrayKey(...) : key) {@link #getSimpleName(String)}
137+
*/
138+
replaceArray: function(key) {
139+
if (JSONObject.isArrayKey(key)) {
140+
key = JSONResponse.getArrayKey(key.substring(0, key.lastIndexOf('[]')));
141+
}
142+
return JSONResponse.getSimpleName(key);
143+
},
144+
/**获取列表变量名
145+
* @param key => getNoBlankString(key)
146+
* @return empty ? "list" : key + "List" 且首字母小写
147+
*/
148+
getArrayKey: function(key) {
149+
return StringUtil.addSuffix(key, "List");
150+
},
151+
152+
/**获取简单名称
153+
* @param fullName name 或 name:alias
154+
* @return name => name; name:alias => alias
155+
*/
156+
getSimpleName: function(fullName) {
157+
//key:alias -> alias; key:alias[] -> alias[]
158+
var index = fullName == null ? -1 : fullName.indexOf(":");
159+
if (index >= 0) {
160+
fullName = fullName.substring(index + 1);
161+
}
162+
return fullName;
163+
}
164+
165+
166+
}

0 commit comments

Comments
 (0)