查看朋友圈设置
1. 接口定位
- 接口名称: 查看朋友圈设置
- 所属域: chat/moments
- 业务目标: 查询指定用户的朋友圈设置;查自己时返回完整设置,查他人时只返回公开字段
2. 请求定义
- Method:
POST - Path:
/chatx/moments/settings/get - Content-Type: 推荐
application/json - operationID: 必填,请通过 Header
operationID传入 - 鉴权: 必填,请通过 Header
token传入有效登录令牌 - 幂等性: 幂等(只读接口)
3. 请求参数
Header 参数
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| operationID | 是 | string | 链路追踪 ID |
| token | 是 | string | 用户登录 token |
Body 参数
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| targetUserID | 是 | string | 要查询的目标用户 ID |
字段说明
- API 层会在转发前把当前登录用户的
callerUserID注入请求体,客户端无需传入。 targetUserID可以是任意用户,包括自己。- 当
callerUserID == targetUserID时,返回完整设置(含未来可能增加的私有字段)。 - 当
callerUserID != targetUserID时,仅返回公开字段(私有字段留空)。
4. 响应结构
通用响应包裹
| 字段 | 类型 | 说明 |
|---|---|---|
| errCode | int | 错误码,0 表示成功 |
| errMsg | string | 错误简述 |
| errDlt | string | 错误详情 |
| data | object | 业务数据 |
data 字段
| 字段 | 类型 | 说明 |
|---|---|---|
| settings | object | 设置对象 |
settings 对象
| 字段 | 类型 | 可见性 | 说明 |
|---|---|---|---|
| bgURL | string | 公开 | 朋友圈背景图 URL;未设置时为空字符串 "" |
公开 / 私有说明:当前
settings下的所有字段均为公开字段,任何人均可查询。后续新增私有字段时,仅在callerUserID == targetUserID时返回,接口结构保持向后兼容。
5. 业务规则
- 路由统一要求
token,API 层从 token 解析当前用户身份写入callerUserID。 - 若目标用户从未修改过设置,服务端返回空 settings(
bgURL为""),不报错。 - 公私字段的过滤逻辑在 RPC 层执行,API 层透传结果。
6. 错误码与失败场景
| 错误码 | 场景 | 典型报错 |
|---|---|---|
| 1001 | Header 缺少 operationID | header must have operationID |
| 1001 | Header 缺少 token | token is empty |
| 1001 | targetUserID 为空 | targetUserID is required |
| - | 查询数据库失败 | 由数据库层返回 |
7. 示例
fetch 请求示例
javascript
fetch("http://localhost:10010/chatx/moments/settings/get", {
method: "POST",
headers: {
operationID: "moments-settings-get-001",
token: "user-token",
"Content-Type": "application/json",
},
body: JSON.stringify({
targetUserID: "u_1001",
}),
})
.then((res) => res.json())
.then((data) => console.log(data));请求示例(JSON)
json
{
"targetUserID": "u_1001"
}响应示例(成功)
json
{
"errCode": 0,
"errMsg": "",
"errDlt": "",
"data": {
"settings": {
"bgURL": "https://cdn.example.com/bg/my-background.jpg"
}
}
}响应示例(用户未设置过背景图)
json
{
"errCode": 0,
"errMsg": "",
"errDlt": "",
"data": {
"settings": {
"bgURL": ""
}
}
}