@djvlc/openapi-user-client 1.8.0 → 1.8.2
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.
- package/dist/index.d.mts +2456 -3410
- package/dist/index.d.ts +2456 -3410
- package/dist/index.js +1822 -2709
- package/dist/index.mjs +1645 -2417
- package/openapi/dist/user-api.yaml +1198 -1599
- package/openapi/src/components/schemas/_index.yaml +829 -1041
- package/openapi/src/openapi.yaml +20 -20
- package/openapi/src/paths/actions.yaml +32 -52
- package/openapi/src/paths/activities.yaml +138 -161
- package/openapi/src/paths/health.yaml +34 -61
- package/openapi/src/paths/pages.yaml +63 -70
- package/openapi/src/paths/queries.yaml +49 -54
- package/openapi/src/paths/tenant.yaml +25 -49
- package/openapi/src/paths/track.yaml +9 -53
- package/package.json +1 -1
|
@@ -1,534 +1,323 @@
|
|
|
1
1
|
# Schema 组件索引
|
|
2
|
+
# 与 docs/user-api/openapi.yaml 保持一致
|
|
2
3
|
|
|
3
4
|
# ============================================================================
|
|
4
|
-
#
|
|
5
|
-
# ============================================================================
|
|
6
|
-
|
|
7
|
-
# ============================================================================
|
|
8
|
-
# 统一响应结构(与 platform 仓库保持一致)
|
|
5
|
+
# 统一响应结构
|
|
9
6
|
# ============================================================================
|
|
10
7
|
|
|
11
8
|
SuccessResponse:
|
|
12
9
|
type: object
|
|
13
10
|
required: [success, code, message, data, timestamp, path]
|
|
14
|
-
description: 成功响应(
|
|
11
|
+
description: 成功响应(BaseResponseVo)
|
|
15
12
|
properties:
|
|
16
13
|
success:
|
|
17
14
|
type: boolean
|
|
18
|
-
|
|
15
|
+
description: 请求是否成功
|
|
19
16
|
example: true
|
|
20
|
-
description: 是否成功(固定为 true)
|
|
21
17
|
code:
|
|
22
18
|
type: string
|
|
23
|
-
example: OK
|
|
24
19
|
description: 业务状态码
|
|
20
|
+
example: OK
|
|
25
21
|
message:
|
|
26
22
|
type: string
|
|
27
|
-
example: 操作成功
|
|
28
23
|
description: 响应消息
|
|
24
|
+
example: 操作成功
|
|
29
25
|
data:
|
|
30
|
-
|
|
26
|
+
type: object
|
|
27
|
+
description: 响应数据
|
|
31
28
|
timestamp:
|
|
32
|
-
type:
|
|
33
|
-
|
|
29
|
+
type: number
|
|
30
|
+
description: 响应时间戳
|
|
34
31
|
example: 1702300000000
|
|
35
|
-
description: 响应时间戳(Unix 毫秒时间戳,number)
|
|
36
32
|
path:
|
|
37
33
|
type: string
|
|
38
|
-
example: /api/user/pages/resolve
|
|
39
34
|
description: 请求路径
|
|
35
|
+
example: /api/users
|
|
40
36
|
requestId:
|
|
41
37
|
type: string
|
|
38
|
+
description: 请求ID
|
|
42
39
|
example: uuid-string
|
|
43
|
-
|
|
40
|
+
traceId:
|
|
41
|
+
type: string
|
|
42
|
+
description: 链路追踪ID(用于全链路定位问题)
|
|
43
|
+
example: trace-uuid-string
|
|
44
44
|
|
|
45
45
|
ErrorResponse:
|
|
46
46
|
type: object
|
|
47
47
|
required: [success, code, message, timestamp, path]
|
|
48
|
-
description: 错误响应(
|
|
48
|
+
description: 错误响应(ErrorResponseVo)
|
|
49
49
|
properties:
|
|
50
50
|
success:
|
|
51
51
|
type: boolean
|
|
52
|
-
|
|
52
|
+
description: 请求是否成功
|
|
53
53
|
example: false
|
|
54
|
-
description: 是否成功(固定为 false)
|
|
55
54
|
code:
|
|
56
55
|
type: string
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
description: 错误码
|
|
57
|
+
example: USER_NOT_FOUND
|
|
59
58
|
message:
|
|
60
59
|
type: string
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
data:
|
|
64
|
-
type: object
|
|
65
|
-
additionalProperties: true
|
|
66
|
-
description: 错误详情(Record<string, unknown>,与 types ApiErrorResponse.data 一致)
|
|
60
|
+
description: 错误消息
|
|
61
|
+
example: 用户不存在
|
|
67
62
|
timestamp:
|
|
68
|
-
type:
|
|
69
|
-
|
|
63
|
+
type: number
|
|
64
|
+
description: 响应时间戳
|
|
70
65
|
example: 1702300000000
|
|
71
|
-
description: 响应时间戳(Unix 毫秒时间戳,number)
|
|
72
66
|
path:
|
|
73
67
|
type: string
|
|
74
|
-
example: /api/user/pages/resolve
|
|
75
68
|
description: 请求路径
|
|
69
|
+
example: /api/users/123
|
|
76
70
|
requestId:
|
|
77
71
|
type: string
|
|
72
|
+
description: 请求ID
|
|
78
73
|
example: uuid-string
|
|
79
|
-
description: 请求 ID(可选)
|
|
80
74
|
traceId:
|
|
81
75
|
type: string
|
|
82
|
-
|
|
83
|
-
|
|
76
|
+
description: 链路追踪ID(用于全链路定位问题)
|
|
77
|
+
example: trace-uuid-string
|
|
84
78
|
|
|
85
79
|
# ============================================================================
|
|
86
|
-
#
|
|
80
|
+
# 通用分页
|
|
87
81
|
# ============================================================================
|
|
88
82
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
83
|
+
PaginationMeta:
|
|
84
|
+
type: object
|
|
85
|
+
required: [page, pageSize, total, totalPages, hasNext, hasPrevious]
|
|
86
|
+
description: 分页元数据(PageMetaVo)
|
|
87
|
+
properties:
|
|
88
|
+
page:
|
|
89
|
+
type: number
|
|
90
|
+
description: 当前页码
|
|
91
|
+
example: 1
|
|
92
|
+
pageSize:
|
|
93
|
+
type: number
|
|
94
|
+
description: 每页条数
|
|
95
|
+
example: 10
|
|
96
|
+
total:
|
|
97
|
+
type: number
|
|
98
|
+
description: 总条数
|
|
99
|
+
example: 100
|
|
100
|
+
totalPages:
|
|
101
|
+
type: number
|
|
102
|
+
description: 总页数
|
|
103
|
+
example: 10
|
|
104
|
+
hasNext:
|
|
105
|
+
type: boolean
|
|
106
|
+
description: 是否有下一页
|
|
107
|
+
example: true
|
|
108
|
+
hasPrevious:
|
|
109
|
+
type: boolean
|
|
110
|
+
description: 是否有上一页
|
|
111
|
+
example: false
|
|
116
112
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
description: 解析后的页面版本 ID(考虑灰度/回滚后的实际版本,UniqueId)
|
|
132
|
-
cdnBase:
|
|
133
|
-
type: string
|
|
134
|
-
format: uri
|
|
135
|
-
description: CDN 基础地址
|
|
136
|
-
snapshotUrl:
|
|
137
|
-
type: string
|
|
138
|
-
format: uri
|
|
139
|
-
description: snapshot.json 的完整 URL
|
|
140
|
-
manifestUrl:
|
|
141
|
-
type: string
|
|
142
|
-
format: uri
|
|
143
|
-
description: manifest.json 的完整 URL
|
|
144
|
-
ops:
|
|
145
|
-
$ref: '#/OpsConfig'
|
|
146
|
-
description: 运维配置(killSwitch、blockedComponents、flags)
|
|
147
|
-
etag:
|
|
148
|
-
type: string
|
|
149
|
-
description: 内容哈希(用于缓存验证)
|
|
150
|
-
cacheTtlSeconds:
|
|
151
|
-
type: integer
|
|
152
|
-
minimum: 0
|
|
153
|
-
maximum: 300
|
|
154
|
-
default: 30
|
|
155
|
-
description: 缓存 TTL(秒),建议 10~30 秒
|
|
156
|
-
traceId:
|
|
157
|
-
type: string
|
|
158
|
-
description: 链路追踪 ID(全链路透传,与 types 可观测原则一致)
|
|
159
|
-
runtimeVersion:
|
|
160
|
-
type: string
|
|
161
|
-
pattern: '^\d+\.\d+\.\d+$'
|
|
162
|
-
description: 运行时版本(SemVer,与 manifest.runtime.version 一致)
|
|
163
|
-
rolloutMatch:
|
|
164
|
-
type: object
|
|
165
|
-
description: 灰度匹配信息(可选,用于调试)
|
|
166
|
-
properties:
|
|
167
|
-
strategyId:
|
|
168
|
-
type: string
|
|
169
|
-
description: 匹配的策略 ID
|
|
170
|
-
strategyName:
|
|
171
|
-
type: string
|
|
172
|
-
description: 匹配的策略名称
|
|
173
|
-
isDefault:
|
|
174
|
-
type: boolean
|
|
175
|
-
description: 是否使用默认版本
|
|
176
|
-
snapshot:
|
|
177
|
-
type: object
|
|
178
|
-
description: 完整快照(仅当 includeSnapshot=1 时返回,CDN 失败保底使用)
|
|
179
|
-
properties:
|
|
180
|
-
page:
|
|
181
|
-
type: object
|
|
182
|
-
description: 页面 Schema(PageSnapshotPage)
|
|
183
|
-
properties:
|
|
184
|
-
schemaVersion:
|
|
185
|
-
type: string
|
|
186
|
-
pageId:
|
|
187
|
-
type: string
|
|
188
|
-
pageVersion:
|
|
189
|
-
type: string
|
|
190
|
-
pattern: '^\d+\.\d+\.\d+$'
|
|
191
|
-
title:
|
|
192
|
-
type: string
|
|
193
|
-
initialState:
|
|
194
|
-
type: object
|
|
195
|
-
additionalProperties: true
|
|
196
|
-
bindings:
|
|
197
|
-
type: array
|
|
198
|
-
items:
|
|
199
|
-
type: object
|
|
200
|
-
root:
|
|
201
|
-
type: object
|
|
202
|
-
config:
|
|
203
|
-
type: object
|
|
204
|
-
manifest:
|
|
205
|
-
type: object
|
|
206
|
-
description: 组件锁定清单(PageSnapshotManifest)
|
|
207
|
-
properties:
|
|
208
|
-
components:
|
|
209
|
-
type: array
|
|
210
|
-
items:
|
|
211
|
-
type: object
|
|
212
|
-
properties:
|
|
213
|
-
name:
|
|
214
|
-
type: string
|
|
215
|
-
version:
|
|
216
|
-
type: string
|
|
217
|
-
pattern: '^\d+\.\d+\.\d+$'
|
|
218
|
-
source:
|
|
219
|
-
type: string
|
|
220
|
-
enum: [bundled, remote]
|
|
221
|
-
description: '组件来源:bundled = 内置组件,remote = 远程组件'
|
|
222
|
-
integrity:
|
|
223
|
-
type: string
|
|
224
|
-
pattern: '^sha(256|384|512)-'
|
|
225
|
-
assetsUrl:
|
|
226
|
-
type: string
|
|
227
|
-
format: uri
|
|
228
|
-
description: 'CDN 资源基础 URL(source 为 remote 时必填)'
|
|
229
|
-
entrypoints:
|
|
230
|
-
type: object
|
|
231
|
-
description: '入口点(source 为 remote 时必填)'
|
|
232
|
-
properties:
|
|
233
|
-
js:
|
|
234
|
-
type: string
|
|
235
|
-
css:
|
|
236
|
-
type: string
|
|
237
|
-
chunks:
|
|
238
|
-
type: array
|
|
239
|
-
items:
|
|
240
|
-
type: string
|
|
241
|
-
runtime:
|
|
242
|
-
type: object
|
|
243
|
-
properties:
|
|
244
|
-
version:
|
|
245
|
-
type: string
|
|
246
|
-
pattern: '^\d+\.\d+\.\d+$'
|
|
247
|
-
minVersion:
|
|
248
|
-
type: string
|
|
249
|
-
pattern: '^\d+\.\d+\.\d+$'
|
|
250
|
-
definitionsDigest:
|
|
251
|
-
type: object
|
|
252
|
-
description: 绑定的 Definition 版本摘要(DefinitionsDigest)
|
|
253
|
-
properties:
|
|
254
|
-
actions:
|
|
255
|
-
type: array
|
|
256
|
-
items:
|
|
257
|
-
type: object
|
|
258
|
-
properties:
|
|
259
|
-
id:
|
|
260
|
-
type: string
|
|
261
|
-
name:
|
|
262
|
-
type: string
|
|
263
|
-
versionId:
|
|
264
|
-
type: string
|
|
265
|
-
hash:
|
|
266
|
-
type: string
|
|
267
|
-
queries:
|
|
268
|
-
type: array
|
|
269
|
-
items:
|
|
270
|
-
type: object
|
|
271
|
-
properties:
|
|
272
|
-
id:
|
|
273
|
-
type: string
|
|
274
|
-
name:
|
|
275
|
-
type: string
|
|
276
|
-
versionId:
|
|
277
|
-
type: string
|
|
278
|
-
hash:
|
|
279
|
-
type: string
|
|
280
|
-
meta:
|
|
281
|
-
type: object
|
|
282
|
-
description: 元数据(PageSnapshotMeta)
|
|
283
|
-
properties:
|
|
284
|
-
pageId:
|
|
285
|
-
type: string
|
|
286
|
-
pageVersionId:
|
|
287
|
-
type: string
|
|
288
|
-
publishId:
|
|
289
|
-
type: string
|
|
290
|
-
schemaVersion:
|
|
291
|
-
type: string
|
|
292
|
-
createdAt:
|
|
293
|
-
type: string
|
|
294
|
-
format: date-time
|
|
295
|
-
createdBy:
|
|
296
|
-
type: string
|
|
297
|
-
contentHash:
|
|
298
|
-
type: string
|
|
299
|
-
bindings:
|
|
300
|
-
type: object
|
|
301
|
-
properties:
|
|
302
|
-
componentVersions:
|
|
303
|
-
type: array
|
|
304
|
-
items:
|
|
305
|
-
type: string
|
|
306
|
-
definitionVersions:
|
|
307
|
-
type: array
|
|
308
|
-
items:
|
|
309
|
-
type: string
|
|
310
|
-
runtimeVersion:
|
|
311
|
-
type: string
|
|
312
|
-
pattern: '^\d+\.\d+\.\d+$'
|
|
313
|
-
env:
|
|
314
|
-
type: string
|
|
315
|
-
enum: [preview, staging, prod]
|
|
113
|
+
CursorPaginationMeta:
|
|
114
|
+
type: object
|
|
115
|
+
description: 游标分页元数据(PageRecordsMetaVo)
|
|
116
|
+
properties:
|
|
117
|
+
pageSize:
|
|
118
|
+
type: number
|
|
119
|
+
description: 每页条数
|
|
120
|
+
pageToken:
|
|
121
|
+
type: string
|
|
122
|
+
description: 下一页游标
|
|
123
|
+
|
|
124
|
+
# ============================================================================
|
|
125
|
+
# 页面相关
|
|
126
|
+
# ============================================================================
|
|
316
127
|
|
|
317
|
-
|
|
128
|
+
ResolvePageResponse:
|
|
318
129
|
type: object
|
|
130
|
+
required: [pageId, resolvedVersionId, cdnBase, snapshotUrl, manifestUrl, ops, etag, cacheTtlSeconds]
|
|
131
|
+
description: 页面解析响应(PageResolveResponseVo)
|
|
319
132
|
properties:
|
|
320
|
-
|
|
321
|
-
type:
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
description:
|
|
133
|
+
pageId:
|
|
134
|
+
type: string
|
|
135
|
+
description: 页面 ID
|
|
136
|
+
example: page_123456
|
|
137
|
+
resolvedVersionId:
|
|
138
|
+
type: string
|
|
139
|
+
description: 解析后的页面版本 ID
|
|
140
|
+
example: pv_20240101_abc
|
|
141
|
+
cdnBase:
|
|
142
|
+
type: string
|
|
143
|
+
description: CDN 基础 URL
|
|
144
|
+
example: https://cdn.example.com
|
|
145
|
+
snapshotUrl:
|
|
146
|
+
type: string
|
|
147
|
+
description: Snapshot URL
|
|
148
|
+
example: https://cdn.example.com/pages/page_123456/snapshot.json
|
|
149
|
+
manifestUrl:
|
|
150
|
+
type: string
|
|
151
|
+
description: Manifest URL
|
|
152
|
+
example: https://cdn.example.com/pages/page_123456/manifest.json
|
|
153
|
+
ops:
|
|
154
|
+
description: 运维配置
|
|
155
|
+
allOf:
|
|
156
|
+
- $ref: '#/OpsConfig'
|
|
157
|
+
etag:
|
|
158
|
+
type: string
|
|
159
|
+
description: ETag(用于缓存)
|
|
160
|
+
example: '"abc123"'
|
|
161
|
+
cacheTtlSeconds:
|
|
162
|
+
type: number
|
|
163
|
+
description: 缓存 TTL(秒)
|
|
164
|
+
example: 300
|
|
165
|
+
traceId:
|
|
166
|
+
type: string
|
|
167
|
+
description: 链路追踪 ID
|
|
168
|
+
runtimeVersion:
|
|
169
|
+
type: string
|
|
170
|
+
description: 运行时版本(SemVer)
|
|
171
|
+
example: 1.0.0
|
|
335
172
|
|
|
336
|
-
|
|
173
|
+
ManifestComponent:
|
|
337
174
|
type: object
|
|
338
|
-
required: [
|
|
175
|
+
required: [name, version, source, integrity]
|
|
176
|
+
description: 组件清单项(ManifestComponentSwaggerVo)
|
|
339
177
|
properties:
|
|
340
|
-
|
|
178
|
+
name:
|
|
341
179
|
type: string
|
|
342
|
-
description:
|
|
180
|
+
description: 组件名称(Custom Element 标签名)
|
|
181
|
+
example: djvlc-button
|
|
343
182
|
version:
|
|
344
183
|
type: string
|
|
345
|
-
description:
|
|
184
|
+
description: 版本号
|
|
185
|
+
example: 1.0.0
|
|
346
186
|
source:
|
|
347
187
|
type: string
|
|
188
|
+
description: 组件来源
|
|
348
189
|
enum: [bundled, remote]
|
|
349
|
-
|
|
350
|
-
entryUrl:
|
|
190
|
+
entry:
|
|
351
191
|
type: string
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
styleUrl:
|
|
192
|
+
description: 入口 URL(remote 组件必填)
|
|
193
|
+
styleEntry:
|
|
355
194
|
type: string
|
|
356
|
-
|
|
357
|
-
description: 样式文件 URL
|
|
195
|
+
description: 样式入口 URL
|
|
358
196
|
integrity:
|
|
359
197
|
type: string
|
|
360
198
|
description: SRI 完整性哈希
|
|
361
|
-
|
|
362
|
-
type: boolean
|
|
363
|
-
description: 是否被阻断
|
|
364
|
-
fallback:
|
|
365
|
-
type: string
|
|
366
|
-
description: 降级组件类型
|
|
367
|
-
|
|
368
|
-
ActionManifest:
|
|
369
|
-
type: object
|
|
370
|
-
required: [actionId, actionDefinitionVersionId]
|
|
371
|
-
properties:
|
|
372
|
-
actionId:
|
|
373
|
-
type: string
|
|
374
|
-
description: 动作 ID
|
|
375
|
-
actionDefinitionVersionId:
|
|
376
|
-
type: string
|
|
377
|
-
description: 动作定义版本 ID
|
|
378
|
-
actionType:
|
|
379
|
-
type: string
|
|
380
|
-
enum: [claim, signin, lottery, reserve, bind, task_complete, vote, share, form_submit, navigate, setState, showToast, refreshData, custom]
|
|
381
|
-
description: 动作类型
|
|
382
|
-
builtin:
|
|
199
|
+
preload:
|
|
383
200
|
type: boolean
|
|
384
|
-
description:
|
|
201
|
+
description: 是否预加载
|
|
385
202
|
|
|
386
|
-
|
|
203
|
+
ManifestRuntime:
|
|
387
204
|
type: object
|
|
388
|
-
required: [
|
|
205
|
+
required: [version, minVersion]
|
|
206
|
+
description: Runtime 版本信息(ManifestRuntimeVo)
|
|
389
207
|
properties:
|
|
390
|
-
|
|
208
|
+
version:
|
|
391
209
|
type: string
|
|
392
|
-
description:
|
|
393
|
-
|
|
210
|
+
description: 版本
|
|
211
|
+
example: 1.0.0
|
|
212
|
+
minVersion:
|
|
394
213
|
type: string
|
|
395
|
-
description:
|
|
396
|
-
|
|
397
|
-
type: integer
|
|
398
|
-
description: 缓存 TTL(秒)
|
|
214
|
+
description: 最低兼容版本
|
|
215
|
+
example: 0.9.0
|
|
399
216
|
|
|
400
|
-
|
|
401
|
-
KillSwitchItem:
|
|
217
|
+
ManifestResponse:
|
|
402
218
|
type: object
|
|
403
|
-
required: [
|
|
404
|
-
description:
|
|
219
|
+
required: [pageVersionId, manifestVersion, components, runtime]
|
|
220
|
+
description: 组件清单响应(ManifestSwaggerVo)
|
|
405
221
|
properties:
|
|
406
|
-
|
|
407
|
-
type: string
|
|
408
|
-
enum: [action, component, feature, page, query]
|
|
409
|
-
description: 目标类型
|
|
410
|
-
targetId:
|
|
411
|
-
type: string
|
|
412
|
-
description: 目标 ID(actionType/componentName/featureKey/pageId/queryId)
|
|
413
|
-
enabled:
|
|
414
|
-
type: boolean
|
|
415
|
-
description: 是否启用(true = 被关闭)
|
|
416
|
-
reason:
|
|
417
|
-
type: string
|
|
418
|
-
description: 关闭原因
|
|
419
|
-
enabledAt:
|
|
420
|
-
type: string
|
|
421
|
-
format: date-time
|
|
422
|
-
description: 关闭时间(ISO8601)
|
|
423
|
-
enabledBy:
|
|
222
|
+
pageVersionId:
|
|
424
223
|
type: string
|
|
425
|
-
description:
|
|
426
|
-
|
|
224
|
+
description: 页面版本 ID
|
|
225
|
+
manifestVersion:
|
|
427
226
|
type: string
|
|
428
|
-
description:
|
|
227
|
+
description: 清单版本
|
|
228
|
+
components:
|
|
229
|
+
description: 组件列表
|
|
230
|
+
type: array
|
|
231
|
+
items:
|
|
232
|
+
$ref: '#/ManifestComponent'
|
|
233
|
+
runtime:
|
|
234
|
+
description: Runtime 版本
|
|
235
|
+
allOf:
|
|
236
|
+
- $ref: '#/ManifestRuntime'
|
|
429
237
|
|
|
430
|
-
|
|
431
|
-
BlockedComponentItem:
|
|
238
|
+
BlockedComponent:
|
|
432
239
|
type: object
|
|
433
|
-
required: [name, reason]
|
|
434
|
-
description:
|
|
240
|
+
required: [name, reason, blockedAt, blockedBy]
|
|
241
|
+
description: 被阻断的组件(BlockedComponentVo)
|
|
435
242
|
properties:
|
|
436
243
|
name:
|
|
437
244
|
type: string
|
|
438
245
|
description: 组件名称
|
|
439
246
|
version:
|
|
440
247
|
type: string
|
|
441
|
-
|
|
442
|
-
description: 组件版本(可选,不指定则阻断所有版本)
|
|
248
|
+
description: 组件版本(不填则阻断所有版本)
|
|
443
249
|
reason:
|
|
444
250
|
type: string
|
|
445
251
|
description: 阻断原因
|
|
446
252
|
blockedAt:
|
|
447
253
|
type: string
|
|
448
|
-
|
|
449
|
-
description: 阻断时间(ISO8601)
|
|
254
|
+
description: 阻断时间
|
|
450
255
|
blockedBy:
|
|
451
256
|
type: string
|
|
452
|
-
description:
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
257
|
+
description: 操作者
|
|
258
|
+
|
|
259
|
+
DegradeConfig:
|
|
260
|
+
type: object
|
|
261
|
+
required: [enabled, mode]
|
|
262
|
+
description: 降级配置(DegradeConfigVo)
|
|
263
|
+
properties:
|
|
264
|
+
enabled:
|
|
458
265
|
type: boolean
|
|
459
|
-
description:
|
|
266
|
+
description: 是否启用降级
|
|
267
|
+
mode:
|
|
268
|
+
type: string
|
|
269
|
+
description: 降级模式
|
|
270
|
+
enum: [fallback, static, error]
|
|
271
|
+
message:
|
|
272
|
+
type: string
|
|
273
|
+
description: 降级消息
|
|
460
274
|
|
|
461
275
|
OpsConfig:
|
|
462
276
|
type: object
|
|
463
|
-
|
|
464
|
-
|
|
277
|
+
required: [killSwitch, blockedComponents, blockedPages, featureFlags, degradeConfig]
|
|
278
|
+
description: 运维配置(OpsConfigVo)
|
|
465
279
|
properties:
|
|
466
|
-
configVersionId:
|
|
467
|
-
type: string
|
|
468
|
-
description: 配置版本 ID(用于缓存失效)
|
|
469
280
|
killSwitch:
|
|
281
|
+
type: boolean
|
|
282
|
+
description: 全局 kill-switch
|
|
283
|
+
blockedComponents:
|
|
284
|
+
description: 被阻断的组件列表
|
|
470
285
|
type: array
|
|
471
286
|
items:
|
|
472
|
-
$ref: '#/
|
|
473
|
-
|
|
474
|
-
|
|
287
|
+
$ref: '#/BlockedComponent'
|
|
288
|
+
blockedPages:
|
|
289
|
+
description: 被阻断的页面列表
|
|
475
290
|
type: array
|
|
476
291
|
items:
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
flags:
|
|
292
|
+
type: string
|
|
293
|
+
featureFlags:
|
|
480
294
|
type: object
|
|
295
|
+
description: 功能开关
|
|
481
296
|
additionalProperties:
|
|
482
297
|
type: boolean
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
description: 配置过期时间(ISO8601)
|
|
298
|
+
degradeConfig:
|
|
299
|
+
description: 降级配置
|
|
300
|
+
allOf:
|
|
301
|
+
- $ref: '#/DegradeConfig'
|
|
488
302
|
|
|
489
303
|
# ============================================================================
|
|
490
304
|
# Action Gateway 动作相关
|
|
491
305
|
# ============================================================================
|
|
492
306
|
|
|
493
|
-
ExecuteActionRequest:
|
|
494
|
-
type: object
|
|
495
|
-
required: [actionType, params, context]
|
|
496
|
-
description: 动作执行请求(ActionExecuteRequest)
|
|
497
|
-
properties:
|
|
498
|
-
actionType:
|
|
499
|
-
type: string
|
|
500
|
-
enum: [claim, signin, lottery, reserve, bind, task_complete, vote, share, form_submit, navigate, setState, showToast, refreshData, custom]
|
|
501
|
-
description: 动作类型(ActionType | string)
|
|
502
|
-
actionDefinitionVersionId:
|
|
503
|
-
type: string
|
|
504
|
-
description: 动作定义版本 ID(可选,不提供则使用最新稳定版,UniqueId)
|
|
505
|
-
params:
|
|
506
|
-
type: object
|
|
507
|
-
additionalProperties: true
|
|
508
|
-
description: 动作参数(Record<string, JsonValue>)
|
|
509
|
-
context:
|
|
510
|
-
$ref: '#/ActionClientContext'
|
|
511
|
-
description: 客户端上下文(ActionClientContext,必填)
|
|
512
|
-
idempotencyKey:
|
|
513
|
-
type: string
|
|
514
|
-
minLength: 16
|
|
515
|
-
maxLength: 128
|
|
516
|
-
description: 幂等键(部分策略需要客户端提供,防重复提交)
|
|
517
|
-
|
|
518
307
|
ActionClientContext:
|
|
519
308
|
type: object
|
|
520
|
-
description: 动作执行上下文(ActionClientContext,问题追溯必须字段)
|
|
521
309
|
required: [pageVersionId]
|
|
310
|
+
description: 动作执行上下文(ActionContextDto)
|
|
522
311
|
properties:
|
|
523
312
|
pageVersionId:
|
|
524
313
|
type: string
|
|
525
|
-
description: 页面版本 ID
|
|
314
|
+
description: 页面版本 ID
|
|
526
315
|
componentVersionId:
|
|
527
316
|
type: string
|
|
528
|
-
description: 组件版本 ID
|
|
317
|
+
description: 组件版本 ID
|
|
529
318
|
componentInstanceId:
|
|
530
319
|
type: string
|
|
531
|
-
description: 组件实例 ID
|
|
320
|
+
description: 组件实例 ID
|
|
532
321
|
triggerEvent:
|
|
533
322
|
type: string
|
|
534
323
|
description: 触发事件名
|
|
@@ -537,477 +326,346 @@ ActionClientContext:
|
|
|
537
326
|
description: 设备 ID
|
|
538
327
|
channel:
|
|
539
328
|
type: string
|
|
540
|
-
description:
|
|
329
|
+
description: 渠道
|
|
541
330
|
clientTimestamp:
|
|
542
331
|
type: string
|
|
543
|
-
|
|
544
|
-
description: 客户端时间戳(ISODateTime)
|
|
332
|
+
description: 客户端时间戳(ISO 8601)
|
|
545
333
|
extra:
|
|
546
334
|
type: object
|
|
335
|
+
description: 扩展数据
|
|
547
336
|
additionalProperties: true
|
|
548
|
-
description: 扩展数据(Record<string, JsonValue>)
|
|
549
|
-
|
|
550
|
-
ExecuteActionResponse:
|
|
551
|
-
allOf:
|
|
552
|
-
- $ref: '#/SuccessResponse'
|
|
553
|
-
- type: object
|
|
554
|
-
properties:
|
|
555
|
-
data:
|
|
556
|
-
type: object
|
|
557
|
-
properties:
|
|
558
|
-
actionId:
|
|
559
|
-
type: string
|
|
560
|
-
description: 动作执行 ID(UniqueId,用于审计追溯)
|
|
561
|
-
result:
|
|
562
|
-
description: 执行结果(泛型 T)
|
|
563
|
-
effects:
|
|
564
|
-
type: array
|
|
565
|
-
items:
|
|
566
|
-
$ref: '#/ActionEffect'
|
|
567
|
-
description: 副作用列表
|
|
568
|
-
errorCode:
|
|
569
|
-
type: string
|
|
570
|
-
description: 错误码(失败时)
|
|
571
|
-
errorMessage:
|
|
572
|
-
type: string
|
|
573
|
-
description: 错误消息(失败时,用户可见)
|
|
574
|
-
errorDetails:
|
|
575
|
-
type: object
|
|
576
|
-
additionalProperties: true
|
|
577
|
-
description: 错误详情(失败时,调试用)
|
|
578
|
-
requestId:
|
|
579
|
-
type: string
|
|
580
|
-
description: 请求 ID
|
|
581
|
-
traceId:
|
|
582
|
-
type: string
|
|
583
|
-
description: 链路追踪 ID
|
|
584
|
-
duration:
|
|
585
|
-
type: integer
|
|
586
|
-
description: 执行耗时(毫秒)
|
|
587
|
-
retryable:
|
|
588
|
-
type: boolean
|
|
589
|
-
description: 是否可重试
|
|
590
|
-
retryAfter:
|
|
591
|
-
type: integer
|
|
592
|
-
description: 建议重试延迟(毫秒)
|
|
593
|
-
riskDecision:
|
|
594
|
-
type: object
|
|
595
|
-
description: 风控决策(可选,风控拒绝时返回)
|
|
596
|
-
properties:
|
|
597
|
-
allowed:
|
|
598
|
-
type: boolean
|
|
599
|
-
description: 是否放行
|
|
600
|
-
reason:
|
|
601
|
-
type: string
|
|
602
|
-
description: 拒绝原因(如 RISK_BLOCKED)
|
|
603
|
-
code:
|
|
604
|
-
type: string
|
|
605
|
-
description: 风控错误码
|
|
606
337
|
|
|
607
|
-
|
|
338
|
+
ExecuteActionRequest:
|
|
608
339
|
type: object
|
|
609
|
-
required: [
|
|
340
|
+
required: [actionType, params, context]
|
|
341
|
+
description: 动作执行请求(ActionExecuteDto)
|
|
610
342
|
properties:
|
|
611
|
-
|
|
343
|
+
actionType:
|
|
344
|
+
type: string
|
|
345
|
+
description: 动作类型
|
|
346
|
+
example: claim
|
|
347
|
+
actionDefinitionVersionId:
|
|
612
348
|
type: string
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
payload:
|
|
349
|
+
description: 动作定义版本 ID(不提供则使用最新稳定版)
|
|
350
|
+
params:
|
|
616
351
|
type: object
|
|
352
|
+
description: 动作参数
|
|
617
353
|
additionalProperties: true
|
|
618
|
-
|
|
354
|
+
example:
|
|
355
|
+
couponId: '12345'
|
|
356
|
+
quantity: 1
|
|
357
|
+
default: {}
|
|
358
|
+
idempotencyKey:
|
|
359
|
+
type: string
|
|
360
|
+
description: 幂等键
|
|
361
|
+
context:
|
|
362
|
+
description: 客户端上下文
|
|
363
|
+
allOf:
|
|
364
|
+
- $ref: '#/ActionClientContext'
|
|
619
365
|
|
|
620
|
-
|
|
366
|
+
ExecuteActionResponse:
|
|
621
367
|
type: object
|
|
622
|
-
required: [success,
|
|
368
|
+
required: [success, requestId, traceId, actionId, duration]
|
|
369
|
+
description: 动作执行响应(ActionExecuteVo)
|
|
623
370
|
properties:
|
|
624
371
|
success:
|
|
625
372
|
type: boolean
|
|
626
|
-
|
|
373
|
+
description: 是否成功
|
|
627
374
|
data:
|
|
628
375
|
type: object
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
376
|
+
description: 业务数据
|
|
377
|
+
additionalProperties: true
|
|
378
|
+
example:
|
|
379
|
+
couponId: '12345'
|
|
380
|
+
claimedAt: '2024-01-01T00:00:00Z'
|
|
381
|
+
errorCode:
|
|
382
|
+
type: string
|
|
383
|
+
description: 错误码
|
|
384
|
+
errorMessage:
|
|
385
|
+
type: string
|
|
386
|
+
description: 错误信息(用户可见)
|
|
387
|
+
errorDetails:
|
|
388
|
+
type: object
|
|
389
|
+
description: 错误详情(调试用)
|
|
390
|
+
additionalProperties: true
|
|
391
|
+
requestId:
|
|
392
|
+
type: string
|
|
393
|
+
description: 请求 ID
|
|
394
|
+
traceId:
|
|
395
|
+
type: string
|
|
396
|
+
description: 链路追踪 ID
|
|
397
|
+
actionId:
|
|
398
|
+
type: string
|
|
399
|
+
description: 动作 ID(用于审计追溯)
|
|
400
|
+
duration:
|
|
401
|
+
type: number
|
|
402
|
+
description: 执行耗时(毫秒)
|
|
403
|
+
retryable:
|
|
404
|
+
type: boolean
|
|
405
|
+
description: 是否可重试
|
|
406
|
+
retryAfter:
|
|
407
|
+
type: number
|
|
408
|
+
description: 建议重试延迟(毫秒)
|
|
642
409
|
|
|
643
410
|
ValidateActionRequest:
|
|
644
411
|
type: object
|
|
645
|
-
required: [
|
|
412
|
+
required: [actionDefinitionVersionId, params]
|
|
413
|
+
description: 动作参数验证请求(ActionValidateDto)
|
|
646
414
|
properties:
|
|
647
|
-
actionType:
|
|
648
|
-
type: string
|
|
649
|
-
description: 动作类型
|
|
650
415
|
actionDefinitionVersionId:
|
|
651
416
|
type: string
|
|
652
417
|
description: 动作定义版本 ID
|
|
653
418
|
params:
|
|
654
419
|
type: object
|
|
420
|
+
description: 待验证参数
|
|
655
421
|
additionalProperties: true
|
|
656
|
-
|
|
422
|
+
example:
|
|
423
|
+
couponId: '12345'
|
|
424
|
+
quantity: 1
|
|
425
|
+
default: {}
|
|
657
426
|
|
|
658
427
|
ValidateActionResponse:
|
|
659
428
|
type: object
|
|
660
|
-
required: [
|
|
429
|
+
required: [valid]
|
|
430
|
+
description: 动作参数验证响应(ActionValidateVo)
|
|
661
431
|
properties:
|
|
662
|
-
|
|
663
|
-
type:
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
type: array
|
|
671
|
-
items:
|
|
672
|
-
type: object
|
|
673
|
-
properties:
|
|
674
|
-
path:
|
|
675
|
-
type: string
|
|
676
|
-
description: 参数路径
|
|
677
|
-
message:
|
|
678
|
-
type: string
|
|
679
|
-
description: 错误消息
|
|
680
|
-
code:
|
|
681
|
-
type: string
|
|
682
|
-
description: 错误码
|
|
683
|
-
description: 验证错误
|
|
432
|
+
valid:
|
|
433
|
+
type: boolean
|
|
434
|
+
description: 是否通过校验
|
|
435
|
+
errors:
|
|
436
|
+
description: 校验错误列表
|
|
437
|
+
type: array
|
|
438
|
+
items:
|
|
439
|
+
type: string
|
|
684
440
|
|
|
685
|
-
|
|
441
|
+
ActionDefinitionVersionResponse:
|
|
686
442
|
type: object
|
|
687
|
-
required: [
|
|
443
|
+
required: [uid, definitionUid, versionNumber, spec, status, createdBy, createdByUsername, createdAt]
|
|
444
|
+
description: 动作定义版本响应(ActionDefinitionVersionVo)
|
|
688
445
|
properties:
|
|
689
|
-
|
|
446
|
+
uid:
|
|
447
|
+
type: string
|
|
448
|
+
description: 版本 UID
|
|
449
|
+
example: 202401efgh87654321
|
|
450
|
+
definitionUid:
|
|
451
|
+
type: string
|
|
452
|
+
description: 所属定义 UID
|
|
453
|
+
example: 202401abcd12345678
|
|
454
|
+
versionNumber:
|
|
455
|
+
type: number
|
|
456
|
+
description: 版本号(递增)
|
|
457
|
+
example: 1
|
|
458
|
+
versionLabel:
|
|
459
|
+
type: string
|
|
460
|
+
nullable: true
|
|
461
|
+
description: 版本标签(可选,如 v1.0.0)
|
|
462
|
+
example: v1.0.0
|
|
463
|
+
description:
|
|
464
|
+
type: string
|
|
465
|
+
nullable: true
|
|
466
|
+
description: 版本描述
|
|
467
|
+
spec:
|
|
468
|
+
description: 规格快照(不可变的 ActionSpec)
|
|
690
469
|
type: object
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
470
|
+
additionalProperties: true
|
|
471
|
+
status:
|
|
472
|
+
type: string
|
|
473
|
+
description: 版本状态
|
|
474
|
+
enum: [draft, stable, deprecated, blocked]
|
|
475
|
+
example: stable
|
|
476
|
+
createdBy:
|
|
477
|
+
type: string
|
|
478
|
+
description: 创建者 UID
|
|
479
|
+
example: 202401user1234
|
|
480
|
+
createdByUsername:
|
|
481
|
+
type: string
|
|
482
|
+
description: 创建者用户名
|
|
483
|
+
example: admin
|
|
484
|
+
createdAt:
|
|
485
|
+
type: string
|
|
486
|
+
format: date-time
|
|
487
|
+
description: 创建时间
|
|
704
488
|
|
|
705
489
|
# ============================================================================
|
|
706
490
|
# Data Proxy 查询相关
|
|
707
491
|
# ============================================================================
|
|
708
492
|
|
|
493
|
+
QueryContext:
|
|
494
|
+
type: object
|
|
495
|
+
description: 数据查询上下文(DataQueryContextDto)
|
|
496
|
+
properties:
|
|
497
|
+
uid:
|
|
498
|
+
type: string
|
|
499
|
+
description: 用户 UID
|
|
500
|
+
pageVersionId:
|
|
501
|
+
type: string
|
|
502
|
+
description: 页面版本 ID
|
|
503
|
+
componentVersionId:
|
|
504
|
+
type: string
|
|
505
|
+
description: 组件版本 ID
|
|
506
|
+
|
|
709
507
|
QueryDataRequest:
|
|
710
508
|
type: object
|
|
711
509
|
required: [queryVersionId]
|
|
712
|
-
description: 数据查询请求(
|
|
510
|
+
description: 数据查询请求(DataQueryDto)
|
|
713
511
|
properties:
|
|
714
512
|
queryVersionId:
|
|
715
513
|
type: string
|
|
716
|
-
description:
|
|
514
|
+
description: 查询版本 ID
|
|
717
515
|
params:
|
|
718
516
|
type: object
|
|
517
|
+
description: 查询参数
|
|
719
518
|
additionalProperties: true
|
|
720
|
-
description: 查询参数(Record<string, JsonValue>)
|
|
721
|
-
cacheControl:
|
|
722
|
-
type: object
|
|
723
|
-
description: 缓存策略覆盖
|
|
724
|
-
properties:
|
|
725
|
-
noCache:
|
|
726
|
-
type: boolean
|
|
727
|
-
description: 是否跳过缓存
|
|
728
|
-
forceRefresh:
|
|
729
|
-
type: boolean
|
|
730
|
-
description: 强制刷新缓存
|
|
731
519
|
context:
|
|
732
|
-
|
|
733
|
-
|
|
520
|
+
description: 上下文
|
|
521
|
+
allOf:
|
|
522
|
+
- $ref: '#/QueryContext'
|
|
734
523
|
|
|
735
|
-
|
|
524
|
+
QueryMetadata:
|
|
736
525
|
type: object
|
|
737
|
-
description:
|
|
526
|
+
description: 查询元数据(DataQueryMetadataVo)
|
|
738
527
|
properties:
|
|
739
|
-
|
|
740
|
-
type:
|
|
741
|
-
description:
|
|
742
|
-
|
|
743
|
-
type:
|
|
744
|
-
description:
|
|
528
|
+
fromCache:
|
|
529
|
+
type: boolean
|
|
530
|
+
description: 是否来自缓存
|
|
531
|
+
duration:
|
|
532
|
+
type: number
|
|
533
|
+
description: 查询耗时(毫秒)
|
|
745
534
|
|
|
746
535
|
QueryDataResponse:
|
|
747
|
-
allOf:
|
|
748
|
-
- $ref: '#/SuccessResponse'
|
|
749
|
-
- type: object
|
|
750
|
-
properties:
|
|
751
|
-
data:
|
|
752
|
-
description: 查询结果数据(泛型 T)
|
|
753
|
-
# 错误信息(失败时)
|
|
754
|
-
errorCode:
|
|
755
|
-
type: string
|
|
756
|
-
description: 错误码(失败时)
|
|
757
|
-
errorMessage:
|
|
758
|
-
type: string
|
|
759
|
-
description: 错误消息(失败时)
|
|
760
|
-
# 缓存信息
|
|
761
|
-
fromCache:
|
|
762
|
-
type: boolean
|
|
763
|
-
description: 是否来自缓存
|
|
764
|
-
cachedAt:
|
|
765
|
-
type: string
|
|
766
|
-
format: date-time
|
|
767
|
-
description: 缓存时间戳(ISODateTime)
|
|
768
|
-
age:
|
|
769
|
-
type: integer
|
|
770
|
-
description: 数据新鲜度(秒)
|
|
771
|
-
# 追踪信息
|
|
772
|
-
requestId:
|
|
773
|
-
type: string
|
|
774
|
-
description: 请求 ID
|
|
775
|
-
traceId:
|
|
776
|
-
type: string
|
|
777
|
-
description: 链路追踪 ID
|
|
778
|
-
duration:
|
|
779
|
-
type: integer
|
|
780
|
-
description: 查询耗时(毫秒)
|
|
781
|
-
# 降级信息
|
|
782
|
-
degraded:
|
|
783
|
-
type: boolean
|
|
784
|
-
description: 是否为降级数据
|
|
785
|
-
degradedReason:
|
|
786
|
-
type: string
|
|
787
|
-
description: 降级原因
|
|
788
|
-
|
|
789
|
-
QueryDefinitionResponse:
|
|
790
536
|
type: object
|
|
791
|
-
required: [
|
|
537
|
+
required: [success]
|
|
538
|
+
description: 数据查询响应(DataQueryVo)
|
|
792
539
|
properties:
|
|
540
|
+
success:
|
|
541
|
+
type: boolean
|
|
542
|
+
description: 是否成功
|
|
793
543
|
data:
|
|
794
544
|
type: object
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
545
|
+
description: 数据
|
|
546
|
+
additionalProperties: true
|
|
547
|
+
errorCode:
|
|
548
|
+
type: string
|
|
549
|
+
description: 错误码
|
|
550
|
+
errorMessage:
|
|
551
|
+
type: string
|
|
552
|
+
description: 错误消息
|
|
553
|
+
metadata:
|
|
554
|
+
description: 元数据
|
|
555
|
+
allOf:
|
|
556
|
+
- $ref: '#/QueryMetadata'
|
|
557
|
+
|
|
558
|
+
BatchQueryItemRequest:
|
|
559
|
+
type: object
|
|
560
|
+
required: [queryVersionId]
|
|
561
|
+
description: 批量查询项(DataQueryBatchItemDto)
|
|
562
|
+
properties:
|
|
563
|
+
queryVersionId:
|
|
564
|
+
type: string
|
|
565
|
+
description: 查询版本 ID
|
|
566
|
+
params:
|
|
567
|
+
type: object
|
|
568
|
+
description: 查询参数
|
|
569
|
+
additionalProperties: true
|
|
809
570
|
|
|
810
571
|
BatchQueryRequest:
|
|
811
572
|
type: object
|
|
812
573
|
required: [queries]
|
|
574
|
+
description: 批量查询请求(DataQueryBatchDto)
|
|
813
575
|
properties:
|
|
814
576
|
queries:
|
|
577
|
+
description: 查询列表
|
|
815
578
|
type: array
|
|
816
579
|
items:
|
|
817
|
-
|
|
818
|
-
required: [queryVersionId]
|
|
819
|
-
properties:
|
|
820
|
-
queryVersionId:
|
|
821
|
-
type: string
|
|
822
|
-
params:
|
|
823
|
-
type: object
|
|
824
|
-
alias:
|
|
825
|
-
type: string
|
|
826
|
-
description: 查询别名(用于结果映射)
|
|
827
|
-
maxItems: 20
|
|
828
|
-
description: 查询列表(最多 20 个)
|
|
829
|
-
context:
|
|
830
|
-
$ref: '#/QueryContext'
|
|
580
|
+
$ref: '#/BatchQueryItemRequest'
|
|
831
581
|
|
|
832
582
|
BatchQueryResponse:
|
|
833
583
|
type: object
|
|
834
|
-
required: [
|
|
584
|
+
required: [results]
|
|
585
|
+
description: 批量查询响应(DataQueryBatchVo)
|
|
835
586
|
properties:
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
type: object
|
|
842
|
-
properties:
|
|
843
|
-
success:
|
|
844
|
-
type: boolean
|
|
845
|
-
data:
|
|
846
|
-
description: 查询结果
|
|
847
|
-
error:
|
|
848
|
-
type: object
|
|
849
|
-
properties:
|
|
850
|
-
code:
|
|
851
|
-
type: string
|
|
852
|
-
message:
|
|
853
|
-
type: string
|
|
854
|
-
description: 按 alias 或 queryVersionId 索引的结果
|
|
855
|
-
|
|
856
|
-
# ============================================================================
|
|
857
|
-
# 通用分页
|
|
858
|
-
# ============================================================================
|
|
587
|
+
results:
|
|
588
|
+
description: 各查询结果列表
|
|
589
|
+
type: array
|
|
590
|
+
items:
|
|
591
|
+
$ref: '#/QueryDataResponse'
|
|
859
592
|
|
|
860
|
-
|
|
861
|
-
PaginationMeta:
|
|
593
|
+
QueryDefinitionResponse:
|
|
862
594
|
type: object
|
|
863
|
-
required: [
|
|
864
|
-
description:
|
|
595
|
+
required: [uid, queryUid, versionNumber, spec, status]
|
|
596
|
+
description: 查询定义响应(DataQueryDefinitionVo)
|
|
865
597
|
properties:
|
|
866
|
-
|
|
867
|
-
type: integer
|
|
868
|
-
minimum: 1
|
|
869
|
-
description: 当前页码
|
|
870
|
-
pageSize:
|
|
871
|
-
type: integer
|
|
872
|
-
minimum: 1
|
|
873
|
-
maximum: 100
|
|
874
|
-
description: 每页数量
|
|
875
|
-
total:
|
|
876
|
-
type: integer
|
|
877
|
-
minimum: 0
|
|
878
|
-
description: 总记录数
|
|
879
|
-
totalPages:
|
|
880
|
-
type: integer
|
|
881
|
-
minimum: 0
|
|
882
|
-
description: 总页数
|
|
883
|
-
hasNext:
|
|
884
|
-
type: boolean
|
|
885
|
-
description: 是否有下一页
|
|
886
|
-
hasPrev:
|
|
887
|
-
type: boolean
|
|
888
|
-
description: 是否有上一页
|
|
889
|
-
|
|
890
|
-
# ============================================================================
|
|
891
|
-
# Tenant 租户相关
|
|
892
|
-
# ============================================================================
|
|
893
|
-
|
|
894
|
-
TenantInfo:
|
|
895
|
-
type: object
|
|
896
|
-
required: [appId, appName, status]
|
|
897
|
-
properties:
|
|
898
|
-
appId:
|
|
899
|
-
type: string
|
|
900
|
-
description: 应用 ID
|
|
901
|
-
appName:
|
|
902
|
-
type: string
|
|
903
|
-
description: 应用名称
|
|
904
|
-
status:
|
|
598
|
+
uid:
|
|
905
599
|
type: string
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
600
|
+
description: 版本 UID
|
|
601
|
+
example: 202401efgh87654321
|
|
602
|
+
queryUid:
|
|
909
603
|
type: string
|
|
910
|
-
description:
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
description:
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
features:
|
|
924
|
-
type: object
|
|
925
|
-
additionalProperties:
|
|
926
|
-
type: boolean
|
|
927
|
-
description: 功能开关
|
|
928
|
-
theme:
|
|
604
|
+
description: 所属查询 UID
|
|
605
|
+
example: 202401abcd12345678
|
|
606
|
+
versionNumber:
|
|
607
|
+
type: number
|
|
608
|
+
description: 版本号(递增)
|
|
609
|
+
example: 1
|
|
610
|
+
versionLabel:
|
|
611
|
+
type: string
|
|
612
|
+
nullable: true
|
|
613
|
+
description: 版本标签(可选,如 v1.0.0)
|
|
614
|
+
example: v1.0.0
|
|
615
|
+
spec:
|
|
616
|
+
description: 规格快照(不可变的 DataQuerySpec)
|
|
929
617
|
type: object
|
|
930
618
|
additionalProperties: true
|
|
931
|
-
|
|
932
|
-
cdnDomain:
|
|
933
|
-
type: string
|
|
934
|
-
format: uri
|
|
935
|
-
description: CDN 域名
|
|
936
|
-
runtimeVersion:
|
|
619
|
+
status:
|
|
937
620
|
type: string
|
|
938
|
-
description:
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
items:
|
|
942
|
-
type: object
|
|
943
|
-
properties:
|
|
944
|
-
componentType:
|
|
945
|
-
type: string
|
|
946
|
-
version:
|
|
947
|
-
type: string
|
|
948
|
-
reason:
|
|
949
|
-
type: string
|
|
950
|
-
description: 阻断的组件列表
|
|
951
|
-
killSwitch:
|
|
952
|
-
type: object
|
|
953
|
-
properties:
|
|
954
|
-
enabled:
|
|
955
|
-
type: boolean
|
|
956
|
-
pageIds:
|
|
957
|
-
type: array
|
|
958
|
-
items:
|
|
959
|
-
type: string
|
|
960
|
-
description: 被 Kill 的页面 ID 列表
|
|
961
|
-
fallbackUrl:
|
|
962
|
-
type: string
|
|
963
|
-
format: uri
|
|
964
|
-
description: Kill Switch 配置
|
|
621
|
+
description: 版本状态
|
|
622
|
+
enum: [draft, stable, deprecated, blocked]
|
|
623
|
+
example: stable
|
|
965
624
|
|
|
966
625
|
# ============================================================================
|
|
967
|
-
#
|
|
626
|
+
# Activity 活动相关
|
|
968
627
|
# ============================================================================
|
|
969
628
|
|
|
970
|
-
|
|
629
|
+
ActivityInfoData:
|
|
971
630
|
type: object
|
|
972
|
-
required: [
|
|
631
|
+
required: [activityId, name, type, startAt, endAt]
|
|
632
|
+
description: 活动信息数据(ActivityInfoDataVo)
|
|
973
633
|
properties:
|
|
974
|
-
|
|
634
|
+
activityId:
|
|
975
635
|
type: string
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
version:
|
|
636
|
+
description: 活动 ID
|
|
637
|
+
name:
|
|
979
638
|
type: string
|
|
980
|
-
description:
|
|
981
|
-
|
|
982
|
-
type:
|
|
983
|
-
description:
|
|
984
|
-
|
|
639
|
+
description: 活动名称
|
|
640
|
+
type:
|
|
641
|
+
type: string
|
|
642
|
+
description: 活动类型
|
|
643
|
+
startAt:
|
|
985
644
|
type: string
|
|
645
|
+
description: 开始时间
|
|
646
|
+
format: date-time
|
|
647
|
+
endAt:
|
|
648
|
+
type: string
|
|
649
|
+
description: 结束时间
|
|
986
650
|
format: date-time
|
|
987
|
-
description: 检查时间
|
|
988
|
-
dependencies:
|
|
989
|
-
type: object
|
|
990
|
-
additionalProperties:
|
|
991
|
-
type: object
|
|
992
|
-
properties:
|
|
993
|
-
status:
|
|
994
|
-
type: string
|
|
995
|
-
enum: [healthy, degraded, unhealthy]
|
|
996
|
-
latency:
|
|
997
|
-
type: integer
|
|
998
|
-
description: 延迟(毫秒)
|
|
999
|
-
message:
|
|
1000
|
-
type: string
|
|
1001
|
-
description: 依赖服务状态
|
|
1002
651
|
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
652
|
+
ActivityInfoResponse:
|
|
653
|
+
type: object
|
|
654
|
+
required: [success, data]
|
|
655
|
+
description: 活动信息响应(ActivityInfoVo)
|
|
656
|
+
properties:
|
|
657
|
+
success:
|
|
658
|
+
type: boolean
|
|
659
|
+
description: 是否成功
|
|
660
|
+
data:
|
|
661
|
+
description: 活动数据
|
|
662
|
+
allOf:
|
|
663
|
+
- $ref: '#/ActivityInfoData'
|
|
1006
664
|
|
|
1007
665
|
ActivityStatus:
|
|
1008
666
|
type: object
|
|
1009
667
|
required: [activityUid, name, type, isInProgress, startAt, endAt]
|
|
1010
|
-
description:
|
|
668
|
+
description: 活动状态(ActivityStatusVo)
|
|
1011
669
|
properties:
|
|
1012
670
|
activityUid:
|
|
1013
671
|
type: string
|
|
@@ -1024,334 +682,464 @@ ActivityStatus:
|
|
|
1024
682
|
description: 是否进行中
|
|
1025
683
|
startAt:
|
|
1026
684
|
type: string
|
|
1027
|
-
|
|
1028
|
-
description: 开始时间(ISODateTime)
|
|
685
|
+
description: 开始时间
|
|
1029
686
|
endAt:
|
|
1030
687
|
type: string
|
|
1031
|
-
|
|
1032
|
-
description: 结束时间(ISODateTime)
|
|
688
|
+
description: 结束时间
|
|
1033
689
|
|
|
1034
|
-
|
|
690
|
+
ActivityStatusResponse:
|
|
1035
691
|
type: object
|
|
1036
|
-
|
|
692
|
+
description: 活动状态响应
|
|
1037
693
|
properties:
|
|
1038
|
-
|
|
694
|
+
activityUid:
|
|
1039
695
|
type: string
|
|
1040
|
-
description: 活动
|
|
696
|
+
description: 活动 UID
|
|
1041
697
|
name:
|
|
1042
698
|
type: string
|
|
1043
699
|
description: 活动名称
|
|
1044
700
|
type:
|
|
1045
701
|
type: string
|
|
1046
|
-
enum: [claim, signin, lottery, reserve, task, vote, share, bind, custom]
|
|
1047
702
|
description: 活动类型
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
description:
|
|
1052
|
-
|
|
1053
|
-
type: string
|
|
1054
|
-
description: 活动描述
|
|
1055
|
-
startTime:
|
|
703
|
+
enum: [claim, signin]
|
|
704
|
+
isInProgress:
|
|
705
|
+
type: boolean
|
|
706
|
+
description: 是否进行中
|
|
707
|
+
startAt:
|
|
1056
708
|
type: string
|
|
1057
|
-
format: date-time
|
|
1058
709
|
description: 开始时间
|
|
1059
|
-
|
|
710
|
+
endAt:
|
|
1060
711
|
type: string
|
|
1061
|
-
format: date-time
|
|
1062
712
|
description: 结束时间
|
|
1063
|
-
rules:
|
|
1064
|
-
type: object
|
|
1065
|
-
additionalProperties: true
|
|
1066
|
-
description: 活动规则(公开部分)
|
|
1067
|
-
rewards:
|
|
1068
|
-
type: array
|
|
1069
|
-
items:
|
|
1070
|
-
type: object
|
|
1071
|
-
properties:
|
|
1072
|
-
name:
|
|
1073
|
-
type: string
|
|
1074
|
-
description:
|
|
1075
|
-
type: string
|
|
1076
|
-
icon:
|
|
1077
|
-
type: string
|
|
1078
|
-
description: 奖励列表
|
|
1079
713
|
|
|
1080
|
-
|
|
714
|
+
SigninCalendarData:
|
|
1081
715
|
type: object
|
|
1082
|
-
required: [activityId,
|
|
1083
|
-
description:
|
|
716
|
+
required: [activityId, month, signedDates, consecutiveDays, totalDays]
|
|
717
|
+
description: 签到日历数据(SigninCalendarDataVo)
|
|
1084
718
|
properties:
|
|
1085
719
|
activityId:
|
|
1086
720
|
type: string
|
|
1087
|
-
description: 活动 ID
|
|
1088
|
-
|
|
1089
|
-
type: string
|
|
1090
|
-
description: 用户 ID
|
|
1091
|
-
activityType:
|
|
721
|
+
description: 活动 ID
|
|
722
|
+
month:
|
|
1092
723
|
type: string
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
724
|
+
description: 月份(YYYY-MM)
|
|
725
|
+
example: '2024-01'
|
|
726
|
+
signedDates:
|
|
727
|
+
description: 已签到日期列表
|
|
728
|
+
example: ['2024-01-01', '2024-01-02']
|
|
729
|
+
type: array
|
|
730
|
+
items:
|
|
731
|
+
type: string
|
|
732
|
+
consecutiveDays:
|
|
733
|
+
type: number
|
|
734
|
+
description: 连续签到天数
|
|
735
|
+
totalDays:
|
|
736
|
+
type: number
|
|
737
|
+
description: 累计签到天数
|
|
738
|
+
|
|
739
|
+
SigninCalendarResponse:
|
|
740
|
+
type: object
|
|
741
|
+
required: [success, data]
|
|
742
|
+
description: 签到日历响应(SigninCalendarVo)
|
|
743
|
+
properties:
|
|
744
|
+
success:
|
|
1096
745
|
type: boolean
|
|
1097
|
-
description:
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
type: integer
|
|
1103
|
-
description: 剩余参与次数
|
|
1104
|
-
typeState:
|
|
1105
|
-
type: object
|
|
1106
|
-
description: 类型特定状态(ClaimState | SigninState | LotteryState)
|
|
1107
|
-
oneOf:
|
|
1108
|
-
- type: object
|
|
1109
|
-
required: [type, claimed]
|
|
1110
|
-
properties:
|
|
1111
|
-
type:
|
|
1112
|
-
type: string
|
|
1113
|
-
enum: [claim]
|
|
1114
|
-
claimed:
|
|
1115
|
-
type: boolean
|
|
1116
|
-
claimedAt:
|
|
1117
|
-
type: string
|
|
1118
|
-
format: date-time
|
|
1119
|
-
claimedPrizeId:
|
|
1120
|
-
type: string
|
|
1121
|
-
availablePrizes:
|
|
1122
|
-
type: array
|
|
1123
|
-
items:
|
|
1124
|
-
type: object
|
|
1125
|
-
properties:
|
|
1126
|
-
prizeId:
|
|
1127
|
-
type: string
|
|
1128
|
-
name:
|
|
1129
|
-
type: string
|
|
1130
|
-
stock:
|
|
1131
|
-
type: integer
|
|
1132
|
-
- type: object
|
|
1133
|
-
required: [type, signedToday, consecutiveDays, totalDays, cycleRecords, makeupAvailable]
|
|
1134
|
-
properties:
|
|
1135
|
-
type:
|
|
1136
|
-
type: string
|
|
1137
|
-
enum: [signin]
|
|
1138
|
-
signedToday:
|
|
1139
|
-
type: boolean
|
|
1140
|
-
todaySignedAt:
|
|
1141
|
-
type: string
|
|
1142
|
-
format: date-time
|
|
1143
|
-
consecutiveDays:
|
|
1144
|
-
type: integer
|
|
1145
|
-
totalDays:
|
|
1146
|
-
type: integer
|
|
1147
|
-
cycleRecords:
|
|
1148
|
-
type: array
|
|
1149
|
-
items:
|
|
1150
|
-
type: object
|
|
1151
|
-
properties:
|
|
1152
|
-
dayKey:
|
|
1153
|
-
type: string
|
|
1154
|
-
signed:
|
|
1155
|
-
type: boolean
|
|
1156
|
-
isMakeup:
|
|
1157
|
-
type: boolean
|
|
1158
|
-
makeupAvailable:
|
|
1159
|
-
type: integer
|
|
1160
|
-
nextReward:
|
|
1161
|
-
type: object
|
|
1162
|
-
properties:
|
|
1163
|
-
type:
|
|
1164
|
-
type: string
|
|
1165
|
-
enum: [consecutive, cumulative]
|
|
1166
|
-
daysNeeded:
|
|
1167
|
-
type: integer
|
|
1168
|
-
reward:
|
|
1169
|
-
type: object
|
|
1170
|
-
additionalProperties: true
|
|
1171
|
-
- type: object
|
|
1172
|
-
required: [type, freeDrawsRemaining, todayDrawCount, totalDrawCount]
|
|
1173
|
-
properties:
|
|
1174
|
-
type:
|
|
1175
|
-
type: string
|
|
1176
|
-
enum: [lottery]
|
|
1177
|
-
freeDrawsRemaining:
|
|
1178
|
-
type: integer
|
|
1179
|
-
todayDrawCount:
|
|
1180
|
-
type: integer
|
|
1181
|
-
totalDrawCount:
|
|
1182
|
-
type: integer
|
|
1183
|
-
pityProgress:
|
|
1184
|
-
type: object
|
|
1185
|
-
properties:
|
|
1186
|
-
current:
|
|
1187
|
-
type: integer
|
|
1188
|
-
target:
|
|
1189
|
-
type: integer
|
|
1190
|
-
resources:
|
|
1191
|
-
type: array
|
|
1192
|
-
items:
|
|
1193
|
-
type: object
|
|
1194
|
-
properties:
|
|
1195
|
-
type:
|
|
1196
|
-
type: string
|
|
1197
|
-
amount:
|
|
1198
|
-
type: integer
|
|
746
|
+
description: 是否成功
|
|
747
|
+
data:
|
|
748
|
+
description: 日历数据
|
|
749
|
+
allOf:
|
|
750
|
+
- $ref: '#/SigninCalendarData'
|
|
1199
751
|
|
|
1200
|
-
|
|
752
|
+
PaginatedRecordsResponse:
|
|
1201
753
|
type: object
|
|
1202
|
-
required: [
|
|
754
|
+
required: [success, data]
|
|
755
|
+
description: 分页记录响应(PaginatedRecordsVo)
|
|
1203
756
|
properties:
|
|
1204
|
-
|
|
1205
|
-
type:
|
|
1206
|
-
description:
|
|
1207
|
-
|
|
1208
|
-
type: integer
|
|
1209
|
-
minimum: 1
|
|
1210
|
-
maximum: 12
|
|
1211
|
-
description: 月份
|
|
1212
|
-
records:
|
|
757
|
+
success:
|
|
758
|
+
type: boolean
|
|
759
|
+
description: 是否成功
|
|
760
|
+
data:
|
|
1213
761
|
type: array
|
|
762
|
+
description: 记录列表
|
|
1214
763
|
items:
|
|
1215
764
|
type: object
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
maximum: 31
|
|
1221
|
-
signedIn:
|
|
1222
|
-
type: boolean
|
|
1223
|
-
reward:
|
|
1224
|
-
type: object
|
|
1225
|
-
properties:
|
|
1226
|
-
name:
|
|
1227
|
-
type: string
|
|
1228
|
-
amount:
|
|
1229
|
-
type: number
|
|
1230
|
-
description: 签到记录
|
|
1231
|
-
consecutiveDays:
|
|
1232
|
-
type: integer
|
|
1233
|
-
description: 连续签到天数
|
|
1234
|
-
totalDays:
|
|
1235
|
-
type: integer
|
|
1236
|
-
description: 本月签到总天数
|
|
765
|
+
meta:
|
|
766
|
+
description: 分页元数据
|
|
767
|
+
allOf:
|
|
768
|
+
- $ref: '#/CursorPaginationMeta'
|
|
1237
769
|
|
|
1238
|
-
|
|
770
|
+
RewardInfo:
|
|
1239
771
|
type: object
|
|
1240
|
-
required: [
|
|
772
|
+
required: [type, value, description]
|
|
773
|
+
description: 奖励信息(RewardInfoVo)
|
|
1241
774
|
properties:
|
|
1242
|
-
|
|
1243
|
-
type: string
|
|
1244
|
-
description: 记录 ID
|
|
1245
|
-
activityId:
|
|
1246
|
-
type: string
|
|
1247
|
-
description: 活动 ID
|
|
1248
|
-
rewardType:
|
|
775
|
+
type:
|
|
1249
776
|
type: string
|
|
1250
777
|
description: 奖励类型
|
|
1251
|
-
|
|
1252
|
-
type: string
|
|
1253
|
-
description: 奖励名称
|
|
1254
|
-
rewardValue:
|
|
778
|
+
value:
|
|
1255
779
|
type: number
|
|
1256
780
|
description: 奖励值
|
|
1257
|
-
|
|
781
|
+
description:
|
|
1258
782
|
type: string
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
783
|
+
description: 奖励描述
|
|
784
|
+
|
|
785
|
+
MilestoneInfo:
|
|
786
|
+
type: object
|
|
787
|
+
required: [days, reward]
|
|
788
|
+
description: 里程碑信息(MilestoneInfoVo)
|
|
789
|
+
properties:
|
|
790
|
+
days:
|
|
791
|
+
type: number
|
|
792
|
+
description: 目标天数
|
|
793
|
+
reward:
|
|
794
|
+
description: 里程碑奖励
|
|
795
|
+
allOf:
|
|
796
|
+
- $ref: '#/RewardInfo'
|
|
797
|
+
|
|
798
|
+
ClaimStatusResponse:
|
|
799
|
+
type: object
|
|
800
|
+
required: [activityUid, hasClaimed, remainingCount, totalCount]
|
|
801
|
+
description: 领取状态响应(ClaimStatusVo)
|
|
802
|
+
properties:
|
|
803
|
+
activityUid:
|
|
1262
804
|
type: string
|
|
1263
|
-
|
|
1264
|
-
|
|
805
|
+
description: 活动 UID
|
|
806
|
+
hasClaimed:
|
|
807
|
+
type: boolean
|
|
808
|
+
description: 是否已领取
|
|
1265
809
|
claimedAt:
|
|
1266
810
|
type: string
|
|
1267
|
-
format: date-time
|
|
1268
811
|
description: 领取时间
|
|
1269
|
-
|
|
1270
|
-
type:
|
|
1271
|
-
|
|
1272
|
-
|
|
812
|
+
remainingCount:
|
|
813
|
+
type: number
|
|
814
|
+
description: 剩余领取次数
|
|
815
|
+
totalCount:
|
|
816
|
+
type: number
|
|
817
|
+
description: 总领取次数
|
|
1273
818
|
|
|
1274
|
-
|
|
819
|
+
SigninStatusResponse:
|
|
1275
820
|
type: object
|
|
1276
|
-
required: [
|
|
821
|
+
required: [activityUid, hasSignedToday, consecutiveDays, totalDays, signedDates]
|
|
822
|
+
description: 签到状态响应(SigninStatusVo)
|
|
1277
823
|
properties:
|
|
1278
|
-
|
|
1279
|
-
type: string
|
|
1280
|
-
description: 记录 ID
|
|
1281
|
-
activityId:
|
|
1282
|
-
type: string
|
|
1283
|
-
description: 活动 ID
|
|
1284
|
-
prizeId:
|
|
1285
|
-
type: string
|
|
1286
|
-
description: 奖品 ID
|
|
1287
|
-
prizeName:
|
|
1288
|
-
type: string
|
|
1289
|
-
description: 奖品名称
|
|
1290
|
-
prizeType:
|
|
1291
|
-
type: string
|
|
1292
|
-
enum: [physical, virtual, coupon, points, none]
|
|
1293
|
-
description: 奖品类型
|
|
1294
|
-
status:
|
|
1295
|
-
type: string
|
|
1296
|
-
enum: [won, notWon, claimed, shipped]
|
|
1297
|
-
description: 状态
|
|
1298
|
-
createdAt:
|
|
1299
|
-
type: string
|
|
1300
|
-
format: date-time
|
|
1301
|
-
description: 抽奖时间
|
|
1302
|
-
claimedAt:
|
|
824
|
+
activityUid:
|
|
1303
825
|
type: string
|
|
1304
|
-
|
|
1305
|
-
|
|
826
|
+
description: 活动 UID
|
|
827
|
+
hasSignedToday:
|
|
828
|
+
type: boolean
|
|
829
|
+
description: 今日是否已签到
|
|
830
|
+
consecutiveDays:
|
|
831
|
+
type: number
|
|
832
|
+
description: 连续签到天数
|
|
833
|
+
totalDays:
|
|
834
|
+
type: number
|
|
835
|
+
description: 累计签到天数
|
|
836
|
+
signedDates:
|
|
837
|
+
description: 签到日期列表
|
|
838
|
+
type: array
|
|
839
|
+
items:
|
|
840
|
+
type: string
|
|
841
|
+
todayReward:
|
|
842
|
+
description: 今日奖励
|
|
843
|
+
allOf:
|
|
844
|
+
- $ref: '#/RewardInfo'
|
|
845
|
+
nextMilestone:
|
|
846
|
+
description: 下一个里程碑
|
|
847
|
+
allOf:
|
|
848
|
+
- $ref: '#/MilestoneInfo'
|
|
1306
849
|
|
|
1307
850
|
# ============================================================================
|
|
1308
851
|
# Track 埋点相关
|
|
1309
852
|
# ============================================================================
|
|
1310
853
|
|
|
1311
|
-
|
|
854
|
+
TrackEvent:
|
|
1312
855
|
type: object
|
|
1313
|
-
required: [eventName]
|
|
856
|
+
required: [eventType, eventName]
|
|
857
|
+
description: 埋点事件(TrackEventDto)
|
|
1314
858
|
properties:
|
|
1315
|
-
eventName:
|
|
1316
|
-
type: string
|
|
1317
|
-
minLength: 1
|
|
1318
|
-
maxLength: 255
|
|
1319
|
-
description: 事件名称
|
|
1320
859
|
eventType:
|
|
1321
860
|
type: string
|
|
1322
|
-
enum: [page_view, click, exposure, custom]
|
|
1323
|
-
default: custom
|
|
1324
861
|
description: 事件类型
|
|
862
|
+
eventName:
|
|
863
|
+
type: string
|
|
864
|
+
description: 事件名称
|
|
1325
865
|
properties:
|
|
1326
866
|
type: object
|
|
1327
|
-
additionalProperties: true
|
|
1328
867
|
description: 事件属性
|
|
1329
868
|
timestamp:
|
|
869
|
+
type: number
|
|
870
|
+
description: 事件时间戳(毫秒)
|
|
871
|
+
|
|
872
|
+
TrackContext:
|
|
873
|
+
type: object
|
|
874
|
+
description: 埋点上下文(TrackContextDto)
|
|
875
|
+
properties:
|
|
876
|
+
uid:
|
|
1330
877
|
type: string
|
|
1331
|
-
|
|
1332
|
-
|
|
878
|
+
description: 用户 UID
|
|
879
|
+
pageVersionId:
|
|
880
|
+
type: string
|
|
881
|
+
description: 页面版本 ID
|
|
882
|
+
componentVersionId:
|
|
883
|
+
type: string
|
|
884
|
+
description: 组件版本 ID
|
|
885
|
+
deviceId:
|
|
886
|
+
type: string
|
|
887
|
+
description: 设备 ID
|
|
888
|
+
sessionId:
|
|
889
|
+
type: string
|
|
890
|
+
description: 会话 ID
|
|
891
|
+
appId:
|
|
892
|
+
type: string
|
|
893
|
+
description: 应用 ID
|
|
894
|
+
|
|
895
|
+
TrackSingleRequest:
|
|
896
|
+
type: object
|
|
897
|
+
required: [event]
|
|
898
|
+
description: 单个埋点请求(TrackSingleDto)
|
|
899
|
+
properties:
|
|
900
|
+
event:
|
|
901
|
+
description: 事件
|
|
902
|
+
allOf:
|
|
903
|
+
- $ref: '#/TrackEvent'
|
|
1333
904
|
context:
|
|
905
|
+
description: 上下文
|
|
906
|
+
allOf:
|
|
907
|
+
- $ref: '#/TrackContext'
|
|
908
|
+
|
|
909
|
+
TrackSingleResponse:
|
|
910
|
+
type: object
|
|
911
|
+
required: [success, data]
|
|
912
|
+
description: 单个埋点响应(TrackSingleResponseVo)
|
|
913
|
+
properties:
|
|
914
|
+
success:
|
|
915
|
+
type: boolean
|
|
916
|
+
description: 是否成功
|
|
917
|
+
data:
|
|
1334
918
|
type: object
|
|
919
|
+
required: [eventId]
|
|
1335
920
|
properties:
|
|
1336
|
-
|
|
1337
|
-
type: string
|
|
1338
|
-
componentVersionId:
|
|
1339
|
-
type: string
|
|
1340
|
-
sessionId:
|
|
1341
|
-
type: string
|
|
1342
|
-
deviceType:
|
|
921
|
+
eventId:
|
|
1343
922
|
type: string
|
|
1344
|
-
|
|
1345
|
-
type: string
|
|
1346
|
-
description: 上下文信息
|
|
923
|
+
description: 事件 ID
|
|
1347
924
|
|
|
1348
925
|
TrackBatchRequest:
|
|
1349
926
|
type: object
|
|
1350
927
|
required: [events]
|
|
928
|
+
description: 批量埋点请求(TrackBatchDto)
|
|
1351
929
|
properties:
|
|
1352
930
|
events:
|
|
931
|
+
description: 事件列表
|
|
932
|
+
type: array
|
|
933
|
+
items:
|
|
934
|
+
$ref: '#/TrackEvent'
|
|
935
|
+
context:
|
|
936
|
+
description: 上下文
|
|
937
|
+
allOf:
|
|
938
|
+
- $ref: '#/TrackContext'
|
|
939
|
+
|
|
940
|
+
TrackBatchError:
|
|
941
|
+
type: object
|
|
942
|
+
required: [index, reason]
|
|
943
|
+
description: 批量埋点错误(TrackBatchErrorVo)
|
|
944
|
+
properties:
|
|
945
|
+
index:
|
|
946
|
+
type: number
|
|
947
|
+
description: 错误索引
|
|
948
|
+
reason:
|
|
949
|
+
type: string
|
|
950
|
+
description: 错误原因
|
|
951
|
+
|
|
952
|
+
TrackBatchResponse:
|
|
953
|
+
type: object
|
|
954
|
+
required: [success, data]
|
|
955
|
+
description: 批量埋点响应(TrackBatchResponseVo)
|
|
956
|
+
properties:
|
|
957
|
+
success:
|
|
958
|
+
type: boolean
|
|
959
|
+
description: 是否成功
|
|
960
|
+
data:
|
|
961
|
+
type: object
|
|
962
|
+
required: [accepted, rejected, errors]
|
|
963
|
+
properties:
|
|
964
|
+
accepted:
|
|
965
|
+
type: number
|
|
966
|
+
description: 接受的事件数量
|
|
967
|
+
rejected:
|
|
968
|
+
type: number
|
|
969
|
+
description: 拒绝的事件数量
|
|
970
|
+
errors:
|
|
971
|
+
description: 错误列表
|
|
972
|
+
type: array
|
|
973
|
+
items:
|
|
974
|
+
$ref: '#/TrackBatchError'
|
|
975
|
+
|
|
976
|
+
# ============================================================================
|
|
977
|
+
# Tenant 租户相关
|
|
978
|
+
# ============================================================================
|
|
979
|
+
|
|
980
|
+
ResolveTenantRequest:
|
|
981
|
+
type: object
|
|
982
|
+
description: 租户解析请求(TenantResolveDto)
|
|
983
|
+
properties:
|
|
984
|
+
appKey:
|
|
985
|
+
type: string
|
|
986
|
+
description: 应用 Key
|
|
987
|
+
host:
|
|
988
|
+
type: string
|
|
989
|
+
description: 主机/域名
|
|
990
|
+
channel:
|
|
991
|
+
type: string
|
|
992
|
+
description: 渠道
|
|
993
|
+
|
|
994
|
+
ResolveTenantData:
|
|
995
|
+
type: object
|
|
996
|
+
required: [appId, name, status, type]
|
|
997
|
+
description: 租户解析数据(TenantResolveDataVo)
|
|
998
|
+
properties:
|
|
999
|
+
appId:
|
|
1000
|
+
type: string
|
|
1001
|
+
description: 应用 ID
|
|
1002
|
+
name:
|
|
1003
|
+
type: string
|
|
1004
|
+
description: 租户名称
|
|
1005
|
+
status:
|
|
1006
|
+
type: string
|
|
1007
|
+
description: 租户状态
|
|
1008
|
+
example: active
|
|
1009
|
+
type:
|
|
1010
|
+
type: string
|
|
1011
|
+
description: 租户类型
|
|
1012
|
+
example: standard
|
|
1013
|
+
logo:
|
|
1014
|
+
type: string
|
|
1015
|
+
description: 租户 Logo URL
|
|
1016
|
+
config:
|
|
1017
|
+
type: object
|
|
1018
|
+
description: 租户配置
|
|
1019
|
+
additionalProperties: true
|
|
1020
|
+
channel:
|
|
1021
|
+
type: string
|
|
1022
|
+
description: 渠道
|
|
1023
|
+
domain:
|
|
1024
|
+
type: string
|
|
1025
|
+
description: 自定义域名
|
|
1026
|
+
|
|
1027
|
+
ResolveTenantResponse:
|
|
1028
|
+
type: object
|
|
1029
|
+
required: [success, data]
|
|
1030
|
+
description: 租户解析响应(TenantResolveVo)
|
|
1031
|
+
properties:
|
|
1032
|
+
success:
|
|
1033
|
+
type: boolean
|
|
1034
|
+
description: 是否成功
|
|
1035
|
+
data:
|
|
1036
|
+
description: 租户数据
|
|
1037
|
+
allOf:
|
|
1038
|
+
- $ref: '#/ResolveTenantData'
|
|
1039
|
+
|
|
1040
|
+
TenantConfigData:
|
|
1041
|
+
type: object
|
|
1042
|
+
required: [appId, status]
|
|
1043
|
+
description: 租户配置数据(TenantConfigDataVo)
|
|
1044
|
+
properties:
|
|
1045
|
+
appId:
|
|
1046
|
+
type: string
|
|
1047
|
+
description: 应用 ID
|
|
1048
|
+
status:
|
|
1049
|
+
type: string
|
|
1050
|
+
description: 租户状态
|
|
1051
|
+
example: active
|
|
1052
|
+
featureFlags:
|
|
1053
|
+
type: object
|
|
1054
|
+
description: 功能开关
|
|
1055
|
+
additionalProperties:
|
|
1056
|
+
type: boolean
|
|
1057
|
+
theme:
|
|
1058
|
+
type: object
|
|
1059
|
+
description: 主题配置
|
|
1060
|
+
additionalProperties: true
|
|
1061
|
+
cdnBase:
|
|
1062
|
+
type: string
|
|
1063
|
+
description: CDN 基地址
|
|
1064
|
+
blockedComponents:
|
|
1065
|
+
description: 阻断组件列表
|
|
1353
1066
|
type: array
|
|
1354
1067
|
items:
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1068
|
+
type: string
|
|
1069
|
+
killSwitch:
|
|
1070
|
+
type: boolean
|
|
1071
|
+
description: 全局 killSwitch
|
|
1072
|
+
|
|
1073
|
+
TenantConfigResponse:
|
|
1074
|
+
type: object
|
|
1075
|
+
required: [success, data]
|
|
1076
|
+
description: 租户配置响应(TenantConfigVo)
|
|
1077
|
+
properties:
|
|
1078
|
+
success:
|
|
1079
|
+
type: boolean
|
|
1080
|
+
description: 是否成功
|
|
1081
|
+
data:
|
|
1082
|
+
description: 配置数据
|
|
1083
|
+
allOf:
|
|
1084
|
+
- $ref: '#/TenantConfigData'
|
|
1085
|
+
|
|
1086
|
+
# ============================================================================
|
|
1087
|
+
# Health 健康检查相关
|
|
1088
|
+
# ============================================================================
|
|
1089
|
+
|
|
1090
|
+
HealthCheckResponse:
|
|
1091
|
+
type: object
|
|
1092
|
+
required: [status, timestamp]
|
|
1093
|
+
description: 健康检查响应(HealthCheckVo)
|
|
1094
|
+
properties:
|
|
1095
|
+
status:
|
|
1096
|
+
type: string
|
|
1097
|
+
description: 服务状态
|
|
1098
|
+
example: healthy
|
|
1099
|
+
timestamp:
|
|
1100
|
+
type: string
|
|
1101
|
+
description: 响应时间戳
|
|
1102
|
+
example: '2026-02-04T12:00:00.000Z'
|
|
1103
|
+
|
|
1104
|
+
LivenessResponse:
|
|
1105
|
+
type: object
|
|
1106
|
+
required: [status]
|
|
1107
|
+
description: 存活检查响应(LivenessVo)
|
|
1108
|
+
properties:
|
|
1109
|
+
status:
|
|
1110
|
+
type: string
|
|
1111
|
+
description: 服务状态
|
|
1112
|
+
example: alive
|
|
1113
|
+
|
|
1114
|
+
HealthCheckItem:
|
|
1115
|
+
type: object
|
|
1116
|
+
description: 健康检查项
|
|
1117
|
+
properties:
|
|
1118
|
+
status:
|
|
1119
|
+
type: string
|
|
1120
|
+
description: 检查状态
|
|
1121
|
+
message:
|
|
1122
|
+
type: string
|
|
1123
|
+
description: 检查消息
|
|
1124
|
+
|
|
1125
|
+
ReadinessResponse:
|
|
1126
|
+
type: object
|
|
1127
|
+
required: [status, checks]
|
|
1128
|
+
description: 就绪检查响应(ReadinessVo)
|
|
1129
|
+
properties:
|
|
1130
|
+
status:
|
|
1131
|
+
type: string
|
|
1132
|
+
description: 服务状态
|
|
1133
|
+
example: ready
|
|
1134
|
+
checks:
|
|
1135
|
+
type: object
|
|
1136
|
+
description: 各检查项状态
|
|
1137
|
+
additionalProperties:
|
|
1138
|
+
$ref: '#/HealthCheckItem'
|
|
1139
|
+
example:
|
|
1140
|
+
database:
|
|
1141
|
+
status: healthy
|
|
1142
|
+
message: Connection OK
|
|
1143
|
+
redis:
|
|
1144
|
+
status: healthy
|
|
1145
|
+
message: Connection OK
|