fa4127b9e5
Reviewed-on: #128
85 lines
2.1 KiB
Markdown
85 lines
2.1 KiB
Markdown
# 新手引导状态(onboarding 族)
|
||
|
||
> 所属:User 组(前缀 `/api/v1/user`) | 鉴权:全部 Bearer | [← 返回 API 索引](../README.md)
|
||
|
||
按(账号, 设备)维度跟踪新手引导完成状态,跨卸载重装持久。运营可在 admin 删记录触发重走。
|
||
|
||
---
|
||
|
||
## GET /onboarding/status — 查新手引导是否已完成
|
||
|
||
已登录用户启动时查:该(账号, 设备)走过引导没。`false` → 客户端应重走。
|
||
|
||
### 入参(query)
|
||
|
||
| 字段 | 类型 | 必填 | 说明 |
|
||
|---|---|---|---|
|
||
| `device_id` | string | ❌(≤64 位) | 硬件级 ANDROID_ID;空 = 按未完成处理(不误跳过) |
|
||
|
||
Mock 请求:
|
||
```
|
||
GET /api/v1/user/onboarding/status?device_id=android_abc123def456
|
||
```
|
||
|
||
### 出参
|
||
|
||
响应 `200`:`OnboardingStatusResponse`
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|---|---|---|
|
||
| `completed` | bool | 该(设备+账号)是否已走过新手引导 |
|
||
|
||
Mock 出参:
|
||
```json
|
||
{"completed": true}
|
||
```
|
||
|
||
---
|
||
|
||
## POST /onboarding/complete — 标记新手引导完成
|
||
|
||
走完新手引导时调一次。按(当前账号, device_id)落一条完成标记,幂等(重复调用不报错)。
|
||
|
||
### 入参
|
||
|
||
| 字段 | 类型 | 必填 | 说明 |
|
||
|---|---|---|---|
|
||
| `device_id` | string | ✅ | 硬件级 ANDROID_ID(与登录请求一致) |
|
||
|
||
Mock 入参:
|
||
```json
|
||
{
|
||
"device_id": "android_abc123def456"
|
||
}
|
||
```
|
||
|
||
### 出参
|
||
|
||
```json
|
||
{"ok": true}
|
||
```
|
||
|
||
---
|
||
|
||
## POST /api/v1/user/onboarding/reset — 重置新手引导(#114)
|
||
|
||
删除(当前账号, `device_id`)的完成标记 → 该设备下次登录/进 App 重走引导。给客户端「设置 → 重看新手引导」入口用(此前只能运营在 admin 删记录)。
|
||
|
||
### 入参
|
||
| 字段 | 类型 | 必填 | 说明 |
|
||
|---|---|---|---|
|
||
| `device_id` | string | ✅ | 硬件级 ANDROID_ID(与 complete 一致) |
|
||
|
||
### 出参
|
||
```json
|
||
{"ok": true}
|
||
```
|
||
幂等:无标记时也返回 ok。
|
||
|
||
---
|
||
|
||
## 说明
|
||
- 替代原 `force_onboarding`(按用户)→ 改设备维度后,运营删记录(或用户自己 reset)即触发重走
|
||
- 幂等:重复标记 / 重复重置都不报错
|
||
- `device_id` 为空时 `status` 一律返回未完成
|