ksyun-sdk-node 1.2.4 → 1.4.9

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 (128) hide show
  1. package/.claude/settings.local.json +12 -0
  2. package/dist/base/BaseClient.js +50 -4
  3. package/dist/service/Actiontrail/v20190401/index.js +31 -31
  4. package/dist/service/Aicp/v20240612/index.js +491 -0
  5. package/dist/service/Aicp/v20251212/index.js +76 -0
  6. package/dist/service/Bill/v20180601/index.js +45 -45
  7. package/dist/service/Bill/v20220601/index.js +35 -35
  8. package/dist/service/Bill_union/v20200101/index.js +139 -103
  9. package/dist/service/Bill_union/v20221222/index.js +93 -93
  10. package/dist/service/Bill_union/v20250801/index.js +66 -0
  11. package/dist/service/Bws/v20160304/index.js +103 -103
  12. package/dist/service/Cdn/v20160901/index.js +52 -19
  13. package/dist/service/Cdn/v20200630/index.js +306 -306
  14. package/dist/service/Cdn/v20200901/index.js +108 -108
  15. package/dist/service/Cdn/v20211201/index.js +45 -0
  16. package/dist/service/Cdn/v20250503/index.js +404 -0
  17. package/dist/service/Cen/v20160304/index.js +321 -321
  18. package/dist/service/Clickhouse/v20210101/index.js +387 -387
  19. package/dist/service/Ebs/v20160304/index.js +262 -262
  20. package/dist/service/Eip/v20160304/index.js +101 -101
  21. package/dist/service/Epc/v20151101/index.js +1822 -766
  22. package/dist/service/Iam/v20151101/index.js +863 -756
  23. package/dist/service/Iam/v20240513/index.js +47 -0
  24. package/dist/service/Iam/v20240703/index.js +44 -0
  25. package/dist/service/Kad/v20161122/index.js +81 -81
  26. package/dist/service/Kce/v20180314/index.js +216 -216
  27. package/dist/service/Kce/v20190806/index.js +343 -343
  28. package/dist/service/Kce/v20201231/index.js +39 -39
  29. package/dist/service/Kcf/v20211215/index.js +141 -141
  30. package/dist/service/Kcm/v20160304/index.js +81 -81
  31. package/dist/service/Kcrs/v20211109/index.js +611 -611
  32. package/dist/service/Kcs/v20160701/index.js +800 -800
  33. package/dist/service/Kcs/v20170401/index.js +47 -47
  34. package/dist/service/Kead/v20200101/index.js +25 -25
  35. package/dist/service/Kec/v20160304/index.js +1697 -1533
  36. package/dist/service/Kes/v20201215/index.js +171 -0
  37. package/dist/service/Ket/v20170101/index.js +92 -92
  38. package/dist/service/Kkms/v20160304/index.js +108 -108
  39. package/dist/service/Klog/v20200731/index.js +232 -705
  40. package/dist/service/Kls/v20170101/index.js +135 -135
  41. package/dist/service/Kmr/v20210902/index.js +422 -0
  42. package/dist/service/Kmr/v20231231/index.js +154 -0
  43. package/dist/service/Kmr/v20240814/index.js +370 -0
  44. package/dist/service/Krds/v20160701/index.js +991 -991
  45. package/dist/service/Krds/v20200825/index.js +115 -115
  46. package/dist/service/Memcached/v20180627/index.js +172 -172
  47. package/dist/service/Mongodb/v20170101/index.js +514 -514
  48. package/dist/service/Monitor/v20100525/index.js +41 -41
  49. package/dist/service/Monitor/v20181114/index.js +25 -25
  50. package/dist/service/Monitor/v20210101/index.js +153 -116
  51. package/dist/service/Monitor/v20220101/index.js +30 -40
  52. package/dist/service/Monitor/v20250101/index.js +71 -0
  53. package/dist/service/Rabbitmq/v20191017/index.js +163 -163
  54. package/dist/service/Resourcemanager/v20210320/index.js +110 -110
  55. package/dist/service/Sks/v20151101/index.js +69 -69
  56. package/dist/service/Slb/v20160304/index.js +1208 -1208
  57. package/dist/service/Sts/v20151101/index.js +23 -23
  58. package/dist/service/Tagv2/v20200901/index.js +115 -115
  59. package/dist/service/Tidb/v20210520/index.js +254 -254
  60. package/dist/service/Trade/v20200114/index.js +20 -20
  61. package/dist/service/Trade/v20200831/index.js +22 -22
  62. package/dist/service/Vpc/v20160304/index.js +1947 -1209
  63. package/dist/service/Waf/v20200707/index.js +174 -174
  64. package/example/iam.js +2 -1
  65. package/example/res.js +2 -1
  66. package/package.json +1 -1
  67. package/src/base/BaseClient.js +51 -4
  68. package/src/service/Actiontrail/v20190401/index.js +42 -42
  69. package/src/service/Aicp/v20240612/index.js +483 -0
  70. package/src/service/Aicp/v20251212/index.js +68 -0
  71. package/src/service/Bill/v20180601/index.js +63 -64
  72. package/src/service/Bill/v20220601/index.js +50 -50
  73. package/src/service/Bill_union/v20200101/index.js +181 -146
  74. package/src/service/Bill_union/v20221222/index.js +124 -124
  75. package/src/service/Bill_union/v20250801/index.js +58 -0
  76. package/src/service/Bws/v20160304/index.js +138 -138
  77. package/src/service/Cdn/v20160901/index.js +62 -30
  78. package/src/service/Cdn/v20200630/index.js +399 -399
  79. package/src/service/Cdn/v20200901/index.js +143 -143
  80. package/src/service/Cdn/v20211201/index.js +37 -0
  81. package/src/service/Cdn/v20250503/index.js +396 -0
  82. package/src/service/Cen/v20160304/index.js +449 -449
  83. package/src/service/Clickhouse/v20210101/index.js +535 -535
  84. package/src/service/Ebs/v20160304/index.js +365 -365
  85. package/src/service/Eip/v20160304/index.js +135 -136
  86. package/src/service/Epc/v20151101/index.js +2065 -1009
  87. package/src/service/Iam/v20151101/index.js +1155 -1050
  88. package/src/service/Iam/v20240513/index.js +39 -0
  89. package/src/service/Iam/v20240703/index.js +36 -0
  90. package/src/service/Kad/v20161122/index.js +112 -112
  91. package/src/service/Kce/v20180314/index.js +309 -309
  92. package/src/service/Kce/v20190806/index.js +471 -471
  93. package/src/service/Kce/v20201231/index.js +50 -50
  94. package/src/service/Kcf/v20211215/index.js +192 -194
  95. package/src/service/Kcm/v20160304/index.js +104 -104
  96. package/src/service/Kcrs/v20211109/index.js +840 -854
  97. package/src/service/Kcs/v20160701/index.js +1095 -1098
  98. package/src/service/Kcs/v20170401/index.js +66 -66
  99. package/src/service/Kead/v20200101/index.js +36 -36
  100. package/src/service/Kec/v20160304/index.js +2061 -1902
  101. package/src/service/Kes/v20201215/index.js +163 -0
  102. package/src/service/Ket/v20170101/index.js +123 -123
  103. package/src/service/Kkms/v20160304/index.js +156 -156
  104. package/src/service/Klog/v20200731/index.js +320 -807
  105. package/src/service/Kls/v20170101/index.js +183 -183
  106. package/src/service/Kmr/v20210902/index.js +414 -0
  107. package/src/service/Kmr/v20231231/index.js +146 -0
  108. package/src/service/Kmr/v20240814/index.js +362 -0
  109. package/src/service/Krds/v20160701/index.js +1291 -1293
  110. package/src/service/Krds/v20200825/index.js +163 -163
  111. package/src/service/Memcached/v20180627/index.js +238 -245
  112. package/src/service/Mongodb/v20170101/index.js +672 -672
  113. package/src/service/Monitor/v20100525/index.js +56 -56
  114. package/src/service/Monitor/v20181114/index.js +36 -36
  115. package/src/service/Monitor/v20210101/index.js +205 -169
  116. package/src/service/Monitor/v20220101/index.js +44 -54
  117. package/src/service/Monitor/v20250101/index.js +63 -0
  118. package/src/service/Rabbitmq/v20191017/index.js +231 -231
  119. package/src/service/Resourcemanager/v20210320/index.js +157 -158
  120. package/src/service/Sks/v20151101/index.js +95 -96
  121. package/src/service/Slb/v20160304/index.js +1471 -1471
  122. package/src/service/Sts/v20151101/index.js +34 -34
  123. package/src/service/Tagv2/v20200901/index.js +163 -163
  124. package/src/service/Tidb/v20210520/index.js +352 -352
  125. package/src/service/Trade/v20200114/index.js +31 -31
  126. package/src/service/Trade/v20200831/index.js +33 -33
  127. package/src/service/Vpc/v20160304/index.js +2404 -1667
  128. package/src/service/Waf/v20200707/index.js +237 -237
@@ -8,239 +8,239 @@ module.exports = class Client extends BaseClient {
8
8
  constructor(...args) {
9
9
  super(...args);
10
10
  _defineProperty(this, "_baseConfig", {
11
- 'protocol': 'http://',
12
- 'endpoint': 'waf.api.ksyun.com',
13
- 'config': {
14
- 'timeout': 60,
11
+ protocol: "http://",
12
+ endpoint: "waf.api.ksyun.com",
13
+ config: {
14
+ timeout: 60,
15
15
  //设置timeout
16
- 'headers': {
17
- 'Accept': 'application/json'
16
+ headers: {
17
+ Accept: "application/json"
18
18
  },
19
- 'credentials': {
20
- 'region': 'cn-shanghai-3',
21
- 'service': 'waf'
19
+ credentials: {
20
+ region: "cn-shanghai-3",
21
+ service: "waf"
22
22
  }
23
23
  }
24
24
  });
25
25
  _defineProperty(this, "_apiList", {
26
- 'CreateDomain': {
27
- 'url': '/',
28
- 'method': 'GET',
29
- 'config': {
30
- 'query': {
31
- 'Version': '2020-07-07',
32
- 'Action': 'CreateDomain'
26
+ CreateDomain: {
27
+ url: "/",
28
+ method: "GET",
29
+ config: {
30
+ query: {
31
+ Version: "2020-07-07",
32
+ Action: "CreateDomain"
33
33
  },
34
- 'headers': {
35
- 'Content-Type': 'application/x-www-form-urlencoded'
34
+ headers: {
35
+ "Content-Type": "application/x-www-form-urlencoded"
36
36
  }
37
37
  },
38
- 'paramsType': {
39
- 'ResourceRecord': 'String',
40
- 'HttpRewrite': 'Boolean',
41
- 'HttpSource': 'Boolean',
42
- 'CertificateId': 'String',
43
- 'CertificateRegion': 'String',
44
- 'LbMethod': 'String',
45
- 'HasProxy': 'Boolean',
46
- 'ProjectId': 'Int',
47
- 'HeaderMark': 'String',
48
- 'HeaderValue': 'String',
49
- 'HealthMonitor': 'String',
50
- 'HttpPort': 'Filter',
51
- 'HttpsPort': 'Filter',
52
- 'Sources': 'String'
38
+ paramsType: {
39
+ ResourceRecord: "String",
40
+ HttpRewrite: "Boolean",
41
+ HttpSource: "Boolean",
42
+ CertificateId: "String",
43
+ CertificateRegion: "String",
44
+ LbMethod: "String",
45
+ HasProxy: "Boolean",
46
+ ProjectId: "Int",
47
+ HeaderMark: "String",
48
+ HeaderValue: "String",
49
+ HealthMonitor: "String",
50
+ HttpPort: "Filter",
51
+ HttpsPort: "Filter",
52
+ Sources: "String"
53
53
  }
54
54
  },
55
- 'DescribeDomains': {
56
- 'url': '/',
57
- 'method': 'GET',
58
- 'config': {
59
- 'query': {
60
- 'Version': '2020-07-07',
61
- 'Action': 'DescribeDomains'
55
+ DescribeDomains: {
56
+ url: "/",
57
+ method: "GET",
58
+ config: {
59
+ query: {
60
+ Version: "2020-07-07",
61
+ Action: "DescribeDomains"
62
62
  },
63
- 'headers': {
64
- 'Content-Type': 'application/x-www-form-urlencoded'
63
+ headers: {
64
+ "Content-Type": "application/x-www-form-urlencoded"
65
65
  }
66
66
  },
67
- 'paramsType': {
68
- 'ResourceRecord': 'String'
67
+ paramsType: {
68
+ ResourceRecord: "String"
69
69
  }
70
70
  },
71
- 'ModifyDomain': {
72
- 'url': '/',
73
- 'method': 'GET',
74
- 'config': {
75
- 'query': {
76
- 'Version': '2020-07-07',
77
- 'Action': 'ModifyDomain'
71
+ ModifyDomain: {
72
+ url: "/",
73
+ method: "GET",
74
+ config: {
75
+ query: {
76
+ Version: "2020-07-07",
77
+ Action: "ModifyDomain"
78
78
  },
79
- 'headers': {
80
- 'Content-Type': 'application/x-www-form-urlencoded'
79
+ headers: {
80
+ "Content-Type": "application/x-www-form-urlencoded"
81
81
  }
82
82
  },
83
- 'paramsType': {
84
- 'ResourceRecordId': 'String',
85
- 'HttpRewrite': 'Boolean',
86
- 'HttpSource': 'Boolean',
87
- 'CertificateId': 'String',
88
- 'CertificateRegion': 'String',
89
- 'LbMethod': 'String',
90
- 'HasProxy': 'Boolean',
91
- 'ProjectId': 'Int',
92
- 'HeaderMark': 'String',
93
- 'HeaderValue': 'String',
94
- 'HealthMonitor': 'String',
95
- 'HttpPort': 'Filter',
96
- 'HttpsPort': 'Filter',
97
- 'Sources': 'String'
83
+ paramsType: {
84
+ ResourceRecordId: "String",
85
+ HttpRewrite: "Boolean",
86
+ HttpSource: "Boolean",
87
+ CertificateId: "String",
88
+ CertificateRegion: "String",
89
+ LbMethod: "String",
90
+ HasProxy: "Boolean",
91
+ ProjectId: "Int",
92
+ HeaderMark: "String",
93
+ HeaderValue: "String",
94
+ HealthMonitor: "String",
95
+ HttpPort: "Filter",
96
+ HttpsPort: "Filter",
97
+ Sources: "String"
98
98
  }
99
99
  },
100
- 'DeleteDomain': {
101
- 'url': '/',
102
- 'method': 'GET',
103
- 'config': {
104
- 'query': {
105
- 'Version': '2020-07-07',
106
- 'Action': 'DeleteDomain'
100
+ DeleteDomain: {
101
+ url: "/",
102
+ method: "GET",
103
+ config: {
104
+ query: {
105
+ Version: "2020-07-07",
106
+ Action: "DeleteDomain"
107
107
  },
108
- 'headers': {
109
- 'Content-Type': 'application/x-www-form-urlencoded'
108
+ headers: {
109
+ "Content-Type": "application/x-www-form-urlencoded"
110
110
  }
111
111
  },
112
- 'paramsType': {
113
- 'ResourceRecordId': 'String'
112
+ paramsType: {
113
+ ResourceRecordId: "String"
114
114
  }
115
115
  },
116
- 'CreateAccessControlRule': {
117
- 'url': '/',
118
- 'method': 'GET',
119
- 'config': {
120
- 'query': {
121
- 'Version': '2020-07-07',
122
- 'Action': 'CreateAccessControlRule'
116
+ CreateAccessControlRule: {
117
+ url: "/",
118
+ method: "GET",
119
+ config: {
120
+ query: {
121
+ Version: "2020-07-07",
122
+ Action: "CreateAccessControlRule"
123
123
  },
124
- 'headers': {
125
- 'Content-Type': 'application/x-www-form-urlencoded'
124
+ headers: {
125
+ "Content-Type": "application/x-www-form-urlencoded"
126
126
  }
127
127
  },
128
- 'paramsType': {
129
- 'ResourceRecordId': 'String',
130
- 'RuleName': 'String',
131
- 'RuleType': 'String',
132
- 'ArgName': 'String',
133
- 'RuleData': 'String',
134
- 'MatchRule': 'Int',
135
- 'Level': 'Int',
136
- 'RuleAction': 'Int',
137
- 'Status': 'Boolean'
128
+ paramsType: {
129
+ ResourceRecordId: "String",
130
+ RuleName: "String",
131
+ RuleType: "String",
132
+ ArgName: "String",
133
+ RuleData: "String",
134
+ MatchRule: "Int",
135
+ Level: "Int",
136
+ RuleAction: "Int",
137
+ Status: "Boolean"
138
138
  }
139
139
  },
140
- 'DescribeAccessControlRules': {
141
- 'url': '/',
142
- 'method': 'GET',
143
- 'config': {
144
- 'query': {
145
- 'Version': '2020-07-07',
146
- 'Action': 'DescribeAccessControlRules'
140
+ DescribeAccessControlRules: {
141
+ url: "/",
142
+ method: "GET",
143
+ config: {
144
+ query: {
145
+ Version: "2020-07-07",
146
+ Action: "DescribeAccessControlRules"
147
147
  },
148
- 'headers': {
149
- 'Content-Type': 'application/x-www-form-urlencoded'
148
+ headers: {
149
+ "Content-Type": "application/x-www-form-urlencoded"
150
150
  }
151
151
  },
152
- 'paramsType': {
153
- 'RuleId': 'String',
154
- 'ResourceRecordId': 'String',
155
- 'RuleName': 'String'
152
+ paramsType: {
153
+ RuleId: "String",
154
+ ResourceRecordId: "String",
155
+ RuleName: "String"
156
156
  }
157
157
  },
158
- 'ModifyAccessControlRule': {
159
- 'url': '/',
160
- 'method': 'GET',
161
- 'config': {
162
- 'query': {
163
- 'Version': '2020-07-07',
164
- 'Action': 'ModifyAccessControlRule'
158
+ ModifyAccessControlRule: {
159
+ url: "/",
160
+ method: "GET",
161
+ config: {
162
+ query: {
163
+ Version: "2020-07-07",
164
+ Action: "ModifyAccessControlRule"
165
165
  },
166
- 'headers': {
167
- 'Content-Type': 'application/x-www-form-urlencoded'
166
+ headers: {
167
+ "Content-Type": "application/x-www-form-urlencoded"
168
168
  }
169
169
  },
170
- 'paramsType': {
171
- 'RuleId': 'String',
172
- 'RuleName': 'String',
173
- 'RuleType': 'String',
174
- 'RuleData': 'String',
175
- 'MatchRule': 'String',
176
- 'ArgName': 'String',
177
- 'Level': 'Int',
178
- 'RuleAction': 'Int',
179
- 'Status': 'Boolean'
170
+ paramsType: {
171
+ RuleId: "String",
172
+ RuleName: "String",
173
+ RuleType: "String",
174
+ RuleData: "String",
175
+ MatchRule: "String",
176
+ ArgName: "String",
177
+ Level: "Int",
178
+ RuleAction: "Int",
179
+ Status: "Boolean"
180
180
  }
181
181
  },
182
- 'DeleteAccessControlRule': {
183
- 'url': '/',
184
- 'method': 'GET',
185
- 'config': {
186
- 'query': {
187
- 'Version': '2020-07-07',
188
- 'Action': 'DeleteAccessControlRule'
182
+ DeleteAccessControlRule: {
183
+ url: "/",
184
+ method: "GET",
185
+ config: {
186
+ query: {
187
+ Version: "2020-07-07",
188
+ Action: "DeleteAccessControlRule"
189
189
  },
190
- 'headers': {
191
- 'Content-Type': 'application/x-www-form-urlencoded'
190
+ headers: {
191
+ "Content-Type": "application/x-www-form-urlencoded"
192
192
  }
193
193
  },
194
- 'paramsType': {
195
- 'RuleId': 'String'
194
+ paramsType: {
195
+ RuleId: "String"
196
196
  }
197
197
  },
198
- 'DescribeCertificates': {
199
- 'url': '/',
200
- 'method': 'GET',
201
- 'config': {
202
- 'query': {
203
- 'Version': '2020-07-07',
204
- 'Action': 'DescribeCertificates'
198
+ DescribeCertificates: {
199
+ url: "/",
200
+ method: "GET",
201
+ config: {
202
+ query: {
203
+ Version: "2020-07-07",
204
+ Action: "DescribeCertificates"
205
205
  },
206
- 'headers': {
207
- 'Content-Type': 'application/x-www-form-urlencoded'
206
+ headers: {
207
+ "Content-Type": "application/x-www-form-urlencoded"
208
208
  }
209
209
  },
210
- 'paramsType': {
211
- 'Request': 'String'
210
+ paramsType: {
211
+ Request: "String"
212
212
  }
213
213
  },
214
- 'CreateIpv6Protection': {
215
- 'url': '/',
216
- 'method': 'GET',
217
- 'config': {
218
- 'query': {
219
- 'Version': '2020-07-07',
220
- 'Action': 'CreateIpv6Protection'
214
+ CreateIpv6Protection: {
215
+ url: "/",
216
+ method: "GET",
217
+ config: {
218
+ query: {
219
+ Version: "2020-07-07",
220
+ Action: "CreateIpv6Protection"
221
221
  },
222
- 'headers': {
223
- 'Content-Type': 'application/x-www-form-urlencoded'
222
+ headers: {
223
+ "Content-Type": "application/x-www-form-urlencoded"
224
224
  }
225
225
  },
226
- 'paramsType': {
227
- 'ResourceRecordId': 'Array'
226
+ paramsType: {
227
+ ResourceRecordId: "Array"
228
228
  }
229
229
  },
230
- 'DeleteIpv6Protection': {
231
- 'url': '/',
232
- 'method': 'GET',
233
- 'config': {
234
- 'query': {
235
- 'Version': '2020-07-07',
236
- 'Action': 'DeleteIpv6Protection'
230
+ DeleteIpv6Protection: {
231
+ url: "/",
232
+ method: "GET",
233
+ config: {
234
+ query: {
235
+ Version: "2020-07-07",
236
+ Action: "DeleteIpv6Protection"
237
237
  },
238
- 'headers': {
239
- 'Content-Type': 'application/x-www-form-urlencoded'
238
+ headers: {
239
+ "Content-Type": "application/x-www-form-urlencoded"
240
240
  }
241
241
  },
242
- 'paramsType': {
243
- 'ResourceRecordId': 'Array'
242
+ paramsType: {
243
+ ResourceRecordId: "Array"
244
244
  }
245
245
  }
246
246
  });
package/example/iam.js CHANGED
@@ -14,7 +14,8 @@ const clientConfig = {
14
14
  method: 'POST', // 请求方法 GET 或者 POST
15
15
  timeout: 60, // 请求超时时间秒
16
16
  protocol: '', // 协议 http:// 或者 https://
17
- endpoint: '' // 接入点域名 如 iam.api.ksyun.com
17
+ endpoint: '', // 接入点域名 如 iam.api.ksyun.com
18
+ path: '' // 自定义URL路径 如 /api/v1/xxx
18
19
  },
19
20
  }
20
21
  let client = new Client(clientConfig)
package/example/res.js CHANGED
@@ -14,7 +14,8 @@ const clientConfig = {
14
14
  method: '', // 请求方法 get 或者 post
15
15
  timeout: 60, // 请求超时时间秒
16
16
  protocol: 'http://', // 协议 http:// 或者 https://
17
- endpoint: '' // 接入点域名 如 iam.api.ksyun.com
17
+ endpoint: '', // 接入点域名 如 iam.api.ksyun.com
18
+ path: '' // 自定义URL路径 如 /api/v1/xxx
18
19
  },
19
20
  }
20
21
  let client = new Client(clientConfig)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ksyun-sdk-node",
3
- "version": "1.2.4",
3
+ "version": "1.4.9",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -39,6 +39,25 @@ module.exports = class BaseClient {
39
39
  ...(apiConfig.config.headers || {})
40
40
  }
41
41
 
42
+ // 处理自定义path
43
+ let customPath = this.httpProfile.path || ''
44
+ // 清理path中的?参数
45
+ if (customPath && customPath.includes('?')) {
46
+ customPath = customPath.split('?')[0]
47
+ }
48
+
49
+ // 处理path拼接,避免双斜杠
50
+ let finalPath = apiConfig.url
51
+ if (customPath) {
52
+ // 清理endpoint末尾的斜杠
53
+ endpoint = endpoint.replace(/\/+$/, '')
54
+ // 确保customPath以/开头
55
+ if (!customPath.startsWith('/')) {
56
+ customPath = '/' + customPath
57
+ }
58
+ finalPath = customPath
59
+ }
60
+
42
61
  let query = apiConfig.config.query
43
62
  if (['GET', 'OPTION', 'HEAD'].includes(method)) {
44
63
  query = {
@@ -50,7 +69,7 @@ module.exports = class BaseClient {
50
69
  let body = this.getBody(method, headers['Content-Type'], params)
51
70
 
52
71
  let signParams = {
53
- path: apiConfig.url,
72
+ path: finalPath,
54
73
  query,
55
74
  body: body || '',
56
75
  headers,
@@ -64,9 +83,13 @@ module.exports = class BaseClient {
64
83
 
65
84
  let signHeaders = getSignatureHeaders(signParams)
66
85
 
67
- let url = `${protocol}${endpoint}${apiConfig.url}?${getCanonicalizedQuery(query)}`
86
+ let url = `${protocol}${endpoint}${finalPath}?${getCanonicalizedQuery(query)}`
68
87
 
69
88
  let timeoutSecond = this.httpProfile.timeout || this._baseConfig.config.timeout
89
+
90
+ // 打印 curl 命令
91
+ this.printCurl(url, method, signHeaders, body)
92
+
70
93
  return fetch(url, {
71
94
  method: method,
72
95
  timeout: timeoutSecond * 1000,
@@ -92,7 +115,7 @@ module.exports = class BaseClient {
92
115
  if (['String', 'Int', 'Double', 'Long', 'Boolean', 'Array'].includes(type) && params[key] != null) {
93
116
  res[key] = params[key]
94
117
  }
95
- if (type == 'Filter') {
118
+ if (type == 'Filter' || type == 'Object') {
96
119
  res = {
97
120
  ...res,
98
121
  ...this.formatFilter(key, params[key])
@@ -131,11 +154,35 @@ module.exports = class BaseClient {
131
154
  }
132
155
  // 目前只有下面这两种
133
156
  if (contentType == 'application/x-www-form-urlencoded') {
134
- return qs.stringify(params)
157
+ return qs.stringify(params, {
158
+ allowDots: true, // 对象转成a.b.c
159
+ arrayFormat: 'indices' // 数组转成a[0]=b&a[1]=c
160
+ })
135
161
  }
136
162
  if (contentType == 'application/json') {
137
163
  return JSON.stringify(params)
138
164
  }
139
165
  return JSON.stringify(params)
140
166
  }
167
+
168
+ /**
169
+ * 打印 curl 命令
170
+ */
171
+ printCurl(url, method, headers, body) {
172
+ let curlCmd = `curl -X ${method} '${url}'`
173
+
174
+ // 添加 headers
175
+ Object.keys(headers).forEach(key => {
176
+ curlCmd += ` \\\n -H '${key}: ${headers[key]}'`
177
+ })
178
+
179
+ // 添加 body
180
+ if (body) {
181
+ curlCmd += ` \\\n -d '${body}'`
182
+ }
183
+
184
+ console.log('\n========== CURL 请求 ==========')
185
+ console.log(curlCmd)
186
+ console.log('================================\n')
187
+ }
141
188
  }
@@ -1,47 +1,47 @@
1
1
  const BaseClient = require("../../../base/BaseClient.js");
2
2
 
3
3
  module.exports = class Client extends BaseClient {
4
- _baseConfig = {
5
- 'protocol': 'http://',
6
- 'endpoint': 'actiontrail.api.ksyun.com',
7
- 'config': {
8
- 'timeout': 60, //设置timeout
9
- 'headers': {
10
- 'Accept': 'application/json'
11
- },
12
- 'credentials': {
13
- 'region': 'cn-shanghai-3',
14
- 'service': 'actiontrail',
15
- },
4
+ _baseConfig = {
5
+ protocol: "http://",
6
+ endpoint: "actiontrail.api.ksyun.com",
7
+ config: {
8
+ timeout: 60, //设置timeout
9
+ headers: {
10
+ Accept: "application/json",
11
+ },
12
+ credentials: {
13
+ region: "cn-shanghai-3",
14
+ service: "actiontrail",
15
+ },
16
+ },
17
+ };
18
+ _apiList = {
19
+ ListOperateLogs: {
20
+ url: "/",
21
+ method: "GET",
22
+ config: {
23
+ query: {
24
+ Version: "2019-04-01",
25
+ Action: "ListOperateLogs",
16
26
  },
17
- }
18
- _apiList = {
19
- 'ListOperateLogs': {
20
- 'url': '/',
21
- 'method': 'GET',
22
- 'config': {
23
- 'query': {
24
- 'Version': '2019-04-01',
25
- 'Action': 'ListOperateLogs',
26
- },
27
- 'headers': {
28
- 'Content-Type': 'application/json'
29
- },
30
- },
31
- 'paramsType': {
32
- 'EventName': 'String',
33
- 'EventRw': 'String',
34
- 'ServiceName': 'String',
35
- 'UserName': 'String',
36
- 'AccessKey': 'String',
37
- 'EventBeginDate': 'String',
38
- 'EventEndDate': 'String',
39
- 'ResourceType': 'String',
40
- 'ResourceName': 'String',
41
- 'Page': 'String',
42
- 'PageSize': 'String',
43
- 'SearchAfter': 'String',
44
- }
27
+ headers: {
28
+ "Content-Type": "application/json",
45
29
  },
46
- }
47
- }
30
+ },
31
+ paramsType: {
32
+ EventName: "String",
33
+ EventRw: "String",
34
+ ServiceName: "String",
35
+ UserName: "String",
36
+ AccessKey: "String",
37
+ EventBeginDate: "String",
38
+ EventEndDate: "String",
39
+ ResourceType: "String",
40
+ ResourceName: "String",
41
+ Page: "String",
42
+ PageSize: "String",
43
+ SearchAfter: "String",
44
+ },
45
+ },
46
+ };
47
+ };