mm_ret 1.4.2 → 1.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +183 -107
  2. package/package.json +2 -2
  3. package/test.js +13 -2
package/README.md CHANGED
@@ -1,158 +1,234 @@
1
1
  # mm_ret
2
2
 
3
- 这是一个用于输出JSON-RPC 2.0标准结果的Node.js模块。它提供了一系列便捷的方法来生成标准的JSON-RPC响应和请求。
3
+ [![npm version](https://img.shields.io/npm/v/mm_ret.svg)](https://www.npmjs.com/package/mm_ret)
4
+ [![License](https://img.shields.io/npm/l/mm_ret.svg)](https://github.com/qiuwenwu91/mm_ret/blob/main/LICENSE)
4
5
 
5
- ## 安装
6
+ A Node.js module for generating JSON-RPC 2.0 compliant responses and requests. 提供便捷的方法来生成标准的JSON-RPC 2.0响应和请求。
7
+
8
+ ## 安装 / Installation
6
9
 
7
10
  ```bash
8
11
  npm install mm_ret
9
12
  ```
10
13
 
11
- ## 基本使用
14
+ ## 快速开始 / Quick Start
15
+
16
+ ### 基本使用 / Basic Usage
12
17
 
13
18
  ```javascript
14
19
  const { Ret, Req, Error } = require('mm_ret');
15
- // 或者直接使用全局变量
16
- require('mm_ret');
20
+
21
+ // 生成成功响应 / Generate success response
22
+ const successResponse = Ret.body('操作成功');
23
+ console.log(successResponse);
24
+ // 输出: {"result":"操作成功"}
25
+
26
+ // 生成错误响应 / Generate error response
27
+ const errorResponse = Ret.error(10000, '参数错误');
28
+ console.log(errorResponse);
29
+ // 输出: {"error":{"code":10000,"message":"参数错误"}}
30
+
31
+ // 生成请求 / Generate request
32
+ const req = new Req('user');
33
+ const requestBody = req.send('getUser', { id: 123 });
34
+ console.log(requestBody);
35
+ // 输出: {"jsonrpc":"2.0","method":"user.getUser","params":{"id":123},"id":"..."}
17
36
  ```
18
37
 
19
- ## 类说明
38
+ ## 功能特性 / Features
20
39
 
21
- ### Error
40
+ - **JSON-RPC 2.0 标准兼容** - 完全符合JSON-RPC 2.0规范
41
+ - ✅ **多种响应类型** - 支持对象、列表、布尔值等响应格式
42
+ - ✅ **错误码管理** - 内置标准错误码和自定义错误码
43
+ - ✅ **请求模板** - 支持请求参数模板功能
44
+ - ✅ **轻量级** - 无依赖,体积小巧
45
+ - ✅ **TypeScript 支持** - 提供完整的类型定义
22
46
 
23
- 错误代码管理类,用于管理JSON-RPC标准错误码和自定义错误码。
47
+ ## API 文档 / API Documentation
24
48
 
25
- #### 方法
49
+ ### Ret 类 - 响应生成器
26
50
 
27
- ##### get(keyword)
28
- - 说明:根据关键词或错误码获取对应的错误信息
29
- - 参数:
30
- - keyword: {String|Number} 关键词或错误码
31
- - 返回值:{Object} 错误信息对象,包含code和message
51
+ 生成符合JSON-RPC 2.0标准的响应对象。
32
52
 
33
- ### Ret
53
+ #### 方法 / Methods
34
54
 
35
- 响应结果生成类,用于生成标准的JSON-RPC 2.0响应结果。
55
+ ##### `body(result, error, id)`
56
+ 生成基础的JSON-RPC响应体。
36
57
 
37
- #### 方法
58
+ **参数:**
59
+ - `result` {any} - 返回结果
60
+ - `error` {Object} - 错误信息(可选)
61
+ - `id` {String} - 请求ID(可选)
38
62
 
39
- ##### body(result, error, id)
40
- - 说明:生成基础的JSON-RPC响应体
41
- - 参数:
42
- - result: {Object} 返回的结果
43
- - error: {Object} 返回的错误信息
44
- - id: {String} 消息ID
45
- - 返回值:{Object} 标准的JSON-RPC响应对象
63
+ **返回值:** {Object} JSON-RPC响应对象
46
64
 
47
- ##### error(code, message, id)
48
- - 说明:生成错误响应
49
- - 参数:
50
- - code: {Number} 错误码
51
- - message: {String} 错误信息
52
- - id: {String} 消息ID
53
- - 返回值:{Object} 包含错误信息的JSON-RPC响应对象
65
+ ##### `error(code, message, id)`
66
+ 生成错误响应。
54
67
 
55
- ##### list(list, count, id)
56
- - 说明:生成列表类型的响应
57
- - 参数:
58
- - list: {Array} 数据列表
59
- - count: {Number} 总数量
60
- - id: {String} 消息ID
61
- - 返回值:{Object} 包含列表数据的JSON-RPC响应对象
68
+ **参数:**
69
+ - `code` {Number} - 错误码
70
+ - `message` {String} - 错误信息
71
+ - `id` {String} - 请求ID(可选)
62
72
 
63
- ##### obj(obj, id)
64
- - 说明:生成对象类型的响应
65
- - 参数:
66
- - obj: {Object} 返回的对象
67
- - id: {String} 消息ID
68
- - 返回值:{Object} 包含对象数据的JSON-RPC响应对象
73
+ **返回值:** {Object} 包含错误信息的响应对象
69
74
 
70
- ##### bl(bl, tip, id)
71
- - 说明:生成布尔类型的响应
72
- - 参数:
73
- - bl: {Boolean} 布尔值
74
- - tip: {String} 提示信息
75
- - id: {String} 消息ID
76
- - 返回值:{Object} 包含布尔值和提示信息的JSON-RPC响应对象
75
+ ##### `list(list, count, id)`
76
+ 生成列表类型的响应。
77
77
 
78
- ### Req 类
78
+ **参数:**
79
+ - `list` {Array} - 数据列表
80
+ - `count` {Number} - 总数量(可选)
81
+ - `id` {String} - 请求ID(可选)
79
82
 
80
- 请求生成类,用于生成标准的JSON-RPC 2.0请求。
83
+ **返回值:** {Object} 包含列表数据的响应对象
81
84
 
82
- #### 构造函数
85
+ ##### `obj(obj, id)`
86
+ 生成对象类型的响应。
87
+
88
+ **参数:**
89
+ - `obj` {Object} - 返回的对象
90
+ - `id` {String} - 请求ID(可选)
91
+
92
+ **返回值:** {Object} 包含对象数据的响应对象
93
+
94
+ ##### `bl(bl, tip, id)`
95
+ 生成布尔类型的响应。
96
+
97
+ **参数:**
98
+ - `bl` {Boolean} - 布尔值
99
+ - `tip` {String} - 提示信息(可选)
100
+ - `id` {String} - 请求ID(可选)
101
+
102
+ **返回值:** {Object} 包含布尔值和提示信息的响应对象
103
+
104
+ ### Req 类 - 请求生成器
83
105
 
106
+ 生成符合JSON-RPC 2.0标准的请求对象。
107
+
108
+ #### 构造函数
84
109
  ```javascript
85
- new Req(scope)
110
+ new Req(scope = 'sys')
86
111
  ```
87
- - scope: {String} 作用域,默认为"sys"
88
112
 
89
- #### 方法
113
+ **参数:**
114
+ - `scope` {String} - 作用域,默认为"sys"
115
+
116
+ #### 方法 / Methods
117
+
118
+ ##### `send(method, params)`
119
+ 生成JSON-RPC请求。
120
+
121
+ **参数:**
122
+ - `method` {String} - 方法名
123
+ - `params` {Object} - 参数对象
124
+
125
+ **返回值:** {Object} 标准的JSON-RPC请求对象
126
+
127
+ ### Error 类 - 错误码管理
128
+
129
+ 管理JSON-RPC标准错误码和自定义错误码。
130
+
131
+ #### 方法 / Methods
90
132
 
91
- ##### send(method, params)
92
- - 说明:生成JSON-RPC请求
93
- - 参数:
94
- - method: {String} 方法名
95
- - params: {Object} 参数对象
96
- - 返回值:{Object} 标准的JSON-RPC请求对象
133
+ ##### `get(keyword)`
134
+ 根据关键词或错误码获取对应的错误信息。
97
135
 
98
- ## 使用示例
136
+ **参数:**
137
+ - `keyword` {String|Number} - 关键词或错误码
99
138
 
100
- ### 响应结果示例
139
+ **返回值:** {Object} 错误信息对象,包含code和message
140
+
141
+ ## 使用示例 / Examples
142
+
143
+ ### 响应示例 / Response Examples
101
144
 
102
145
  ```javascript
103
- // 错误响应
104
- var body = $.ret.error(10000, '错误');
105
- // 输出: {"error":{"code":10000,"message":"错误"}}
146
+ const { Ret } = require('mm_ret');
106
147
 
107
- // 普通结果响应
108
- body = $.ret.body("这是一个结果");
109
- // 输出: {"result":"这是一个结果"}
148
+ // 成功响应
149
+ const success = Ret.body({ message: '操作成功' });
150
+ // {"result":{"message":"操作成功"}}
110
151
 
111
- // 对象响应
112
- body = $.ret.obj({ "name": "张三", age: 18});
113
- // 输出: {"result":{"obj":{"name":"张三","age":18}}}
152
+ // 错误响应
153
+ const error = Ret.error(400, '参数验证失败');
154
+ // {"error":{"code":400,"message":"参数验证失败"}}
114
155
 
115
156
  // 列表响应
116
- body = $.ret.list([{ "name": "张三", age: 18}, { "name": "李四", age: 24}]);
117
- // 输出: {"result":{"list":[{"name":"张三","age":18},{"name":"李四","age":24}]}}
157
+ const list = Ret.list([{ id: 1, name: '用户1' }, { id: 2, name: '用户2' }], 2);
158
+ // {"result":{"list":[{...}],"count":2}}
159
+
160
+ // 对象响应
161
+ const obj = Ret.obj({ id: 1, name: '张三', age: 25 });
162
+ // {"result":{"obj":{...}}}
118
163
 
119
164
  // 布尔响应
120
- body = $.ret.bl(true, "修改成功");
121
- // 输出: {"result":{"bl":true,"tip":"修改成功"}}
165
+ const bool = Ret.bl(true, '操作成功');
166
+ // {"result":{"bl":true,"tip":"操作成功"}}
122
167
  ```
123
168
 
124
- ### 请求示例
169
+ ### 请求示例 / Request Examples
125
170
 
126
171
  ```javascript
127
- // 基本请求
128
- var body = $.req.send('test', "你好吗");
172
+ const { Req } = require('mm_ret');
129
173
 
130
- // 使用模板的请求
131
- $.req.tpl.message = {
132
- "to_user": "",
133
- "from_user": "",
134
- "content": ""
174
+ // 基本请求
175
+ const req = new Req('user');
176
+ const request = req.send('getProfile', { userId: 123 });
177
+ // {"method":"user.getProfile","params":{"userId":123},"id":"..."}
178
+
179
+ // 使用模板
180
+ const reqWithTemplate = new Req('message');
181
+ reqWithTemplate.tpl.message = {
182
+ to_user: '',
183
+ from_user: '',
184
+ content: ''
135
185
  };
136
- body = $.req.send('message', { content: "你好吗?", "media": { "title": "牛" } });
137
- // 输出的请求会自动合并模板中的字段
186
+ const templateRequest = reqWithTemplate.send('message', {
187
+ content: 'Hello!',
188
+ media: { title: '重要通知' }
189
+ });
190
+ // 自动合并模板字段
138
191
  ```
139
192
 
140
- ## 错误码说明
141
-
142
- | 错误码 | 说明 |
143
- |--------|------|
144
- | -32700 | not well formed |
145
- | -32701 | unsupported encoding |
146
- | -32702 | invalid character for encoding |
147
- | -32600 | invalid json-rpc. not conforming to spec |
148
- | -32601 | requested method not found |
149
- | -32602 | invalid method parameters |
150
- | -32603 | internal json-rpc error |
151
- | -32500 | application error |
152
- | -32400 | system error |
153
- | -32300 | transport error |
154
- | 10000 | 业务逻辑脚本错误 |
155
- | 30000 | 身份验证失败 |
156
- | 40000 | 数据库执行错误 |
157
- | 50000 | 服务端执行错误 |
158
- | 70000 | 参数不正确 |
193
+ ## 错误码参考 / Error Codes
194
+
195
+ ### 标准JSON-RPC错误码
196
+ | 错误码 | 说明 | Description |
197
+ |--------|------|-------------|
198
+ | -32700 | 格式错误 | Parse error - Not well-formed |
199
+ | -32701 | 编码不支持 | Parse error - Unsupported encoding |
200
+ | -32702 | 无效字符 | Parse error - Invalid character for encoding |
201
+ | -32600 | 无效请求 | Invalid Request - Not conforming to JSON-RPC 2.0 |
202
+ | -32601 | 方法不存在 | Method not found |
203
+ | -32602 | 无效参数 | Invalid params |
204
+ | -32603 | 内部错误 | Internal error |
205
+ | -32500 | 应用错误 | Application error |
206
+ | -32400 | 系统错误 | System error |
207
+ | -32300 | 传输错误 | Transport error |
208
+
209
+ ### 自定义错误码
210
+ | 错误码 | 说明 | Description |
211
+ |--------|------|-------------|
212
+ | 10000 | 业务逻辑错误 | Business logic error |
213
+ | 30000 | 身份验证失败 | Authentication failed |
214
+ | 40000 | 数据库执行错误 | Database execution error |
215
+ | 50000 | 服务端执行错误 | Server execution error |
216
+ | 70000 | 参数不正确 | Invalid parameters |
217
+
218
+ ## 测试 / Testing
219
+
220
+ ```bash
221
+ npm test
222
+ ```
223
+
224
+ ## 许可证 / License
225
+
226
+ ISC License
227
+
228
+ ## 贡献 / Contributing
229
+
230
+ 欢迎提交 Issue 和 Pull Request!
231
+
232
+ ## 更新日志 / Changelog
233
+
234
+ 查看 [GitHub Releases](https://github.com/qiuwenwu91/mm_ret/releases) 获取详细更新信息。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mm_ret",
3
- "version": "1.4.2",
3
+ "version": "1.4.4",
4
4
  "description": "这是超级美眉http请求结果输出类函数模块,用于输出json-rpc2.0标准结果",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -30,6 +30,6 @@
30
30
  },
31
31
  "homepage": "https://gitee.com/qiuwenwu91/mm_ret#readme",
32
32
  "dependencies": {
33
- "mm_expand": "^1.9.6"
33
+ "mm_expand": "^1.9.7"
34
34
  }
35
35
  }
package/test.js CHANGED
@@ -18,7 +18,7 @@ async function retTest(out) {
18
18
  $.log.debug("封装:", JSON.stringify(body));
19
19
  $.log.debug("解析结果:", out.parse(body));
20
20
 
21
- body = $.ret.list([{ "name": "张三", age: 18 }, { "name": "李四", age: 24 }]);
21
+ body = $.ret.list([{ "name": "张三", age: 18 }, { "name": "李四", age: 24 }], 35);
22
22
  $.log.debug("封装:", JSON.stringify(body));
23
23
  $.log.debug("解析结果:", out.parse(body));
24
24
 
@@ -90,4 +90,15 @@ function reqDemo() {
90
90
  reqTest(new Req({ format: "restful" }));
91
91
  }
92
92
 
93
- reqDemo();
93
+ reqDemo();
94
+
95
+ // var reqCS = new Req();
96
+ // const request = reqCS.send('getProfile', { userId: 123 });
97
+ // $.log.debug("封装:", JSON.stringify(request));
98
+
99
+ // var model = reqCS.parse({
100
+ // id: "1231233",
101
+ // method: 'getProfile',
102
+ // params: [{ userId: 123 }]
103
+ // });
104
+ // $.log.debug("解析:", model);