Skip to content

提交举报

1. 接口定位

  • 接口名称: 提交举报
  • 所属域: chat/report
  • 业务目标: 统一上报用户/群/动态的举报请求,进入后台待处理队列

2. 请求定义

  • Method: POST
  • Path: /chatx/report/submit
  • Content-Type: 推荐 application/json
  • operationID: 必填,请通过 Header operationID 传入
  • 鉴权: 需要 Header token,且必须是用户 token
  • 幂等性: 非幂等(重复提交会生成新的举报记录)

3. 请求参数

Header 参数

字段必填类型说明
operationIDstring链路追踪 ID
tokenstring用户 token

Body 参数

字段必填类型说明
targetTypestring举报对象类型:user/group/moment
targetIDstring举报对象 ID
reasonCode条件string举报原因编码
reasonText条件string举报原因说明
evidenceURLsarray<string>证据链接列表
sourceScenestring举报来源场景(如 profile/feed
sourceIDstring来源对象 ID(如会话 ID、帖子 ID)

字段约束

  • targetType 仅允许 user/group/moment
  • targetID 不能为空。
  • reasonCodereasonText 至少提供一个。

4. 响应结构

通用响应包裹

字段类型说明
errCodeint错误码,0 表示成功
errMsgstring错误简述
errDltstring错误详情
dataobject业务数据

data 字段

字段类型说明
reportIDstring举报记录 ID
statusint32举报状态,固定为 1(待处理)
createTimeint64创建时间,Unix 毫秒时间戳

5. 业务规则

  • 服务端会自动补齐 reporterUserIDoperationIDIPUser-Agent
  • 当前版本仅做上报入库,不在该接口内执行自动封禁或自动下架。

6. 错误码与失败场景

错误码场景典型报错
1001targetType 非法targetType must be user/group/moment
1001targetID 为空targetID is required
1001原因为空reasonCode or reasonText is required
-存储失败由数据库层返回原始错误

7. 示例

fetch 请求示例

javascript
fetch("http://localhost:10010/chatx/report/submit", {
  method: "POST",
  headers: {
    operationID: "chatx-report-submit-001",
    token: "eyJhbGciOi...",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    targetType: "moment",
    targetID: "post_10001",
    reasonCode: "porn",
    reasonText: "疑似违规内容",
    evidenceURLs: ["https://cdn.example.com/report/evidence-1.jpg"],
    sourceScene: "feed",
    sourceID: "post_10001",
  }),
})
  .then((res) => res.json())
  .then((data) => console.log(data));

请求示例(JSON)

json
{
  "targetType": "moment",
  "targetID": "post_10001",
  "reasonCode": "porn",
  "reasonText": "疑似违规内容",
  "evidenceURLs": ["https://cdn.example.com/report/evidence-1.jpg"],
  "sourceScene": "feed",
  "sourceID": "post_10001"
}

成功响应示例

json
{
  "errCode": 0,
  "errMsg": "",
  "errDlt": "",
  "data": {
    "reportID": "9f0af0ce-9f6d-4dbf-8ab8-0b04f1f2b7f0",
    "status": 1,
    "createTime": 1787990000000
  }
}

8. 时序流程

  1. 中间件校验用户 token。
  2. 校验举报参数合法性。
  3. 补齐调用上下文字段并写入举报集合。
  4. 返回 reportID 与初始状态。

9. 变更记录

  • 2026-08-29: 首版发布,新增统一举报上报接口。