XuqmGroup-Web/docs-site/docs/server/api.md
XuqmGroup 491a1ce8d3 feat(sdk): 初始化 Android SDK 核心功能模块
- 添加 SDK 配置管理、网络请求客户端和令牌存储功能
- 实现即时通讯 IM 模块,包括消息收发、群组管理和会话功能
- 集成推送服务和应用更新功能模块
- 创建示例应用演示 SDK 使用方法
- 配置项目依赖管理和构建设置
2026-04-27 17:18:56 +08:00

4.3 KiB

Server API 参考

Base URLhttps://dev.xuqinmin.com

所有 API 通过 Nginx 反代,无需区分内部端口。

认证

/api/im/auth/login 外,所有 IM 接口需在请求头携带 JWT Token

Authorization: Bearer <token>

Token 由 /api/im/auth/login 接口签发。


IM 服务(/api/im/

登录 · 获取 Token

POST /api/im/auth/login

Query 参数

参数 必填 说明
appId 应用 ID
userId 用户 ID
nickname 昵称

响应

{ "token": "eyJ..." }

WebSocket 连接

WSS /ws/im?token=<token>&appId=<appId>
  • 协议STOMP over WebSocket
  • 单聊订阅:/user/{userId}/queue/messages
  • 群聊订阅:/topic/group/{groupId}

发送消息

POST /api/im/messages
Authorization: Bearer <token>
Content-Type: application/json

请求体

{
  "toId":     "user_002",
  "chatType": "SINGLE",
  "msgType":  "TEXT",
  "content":  "Hello!"
}

chatTypeSINGLE | GROUP

msgTypeTEXT | IMAGE | VIDEO | AUDIO | FILE | CUSTOM | LOCATION | NOTIFY | RICH_TEXT | CALL_AUDIO | CALL_VIDEO | FORWARD

响应ImMessage 对象


撤回消息

PUT /api/im/messages/{messageId}/revoke
Authorization: Bearer <token>

响应:更新后的 ImMessagestatus: "REVOKED"msgType: "REVOKED"


消息历史(单聊)

GET /api/im/messages/history?appId=&userId=&toId=&page=0&size=50
Authorization: Bearer <token>

响应:分页 ImMessage 列表


创建群组

POST /api/im/groups
Authorization: Bearer <token>
Content-Type: application/json
{
  "appId":     "ak_demo_chat",
  "name":      "开发群",
  "memberIds": ["user_001", "user_002"]
}

响应ImGroup 对象


获取群列表

GET /api/im/groups?appId=ak_demo_chat
Authorization: Bearer <token>

添加群成员

POST /api/im/groups/{groupId}/members
Authorization: Bearer <token>
Content-Type: application/json

{ "userId": "user_003" }

移除群成员

DELETE /api/im/groups/{groupId}/members/{targetUserId}
Authorization: Bearer <token>

版本管理服务(/api/v1/updates/ 和 /api/v1/rn/

检查 App 更新

GET /api/v1/updates/check?appId=&platform=ANDROID&versionCode=1

响应

{
  "hasUpdate":   true,
  "versionCode": 2,
  "versionName": "1.0.1",
  "forceUpdate": false,
  "downloadUrl": "https://cdn.example.com/app.apk",
  "appStoreUrl": null,
  "releaseNotes": "修复若干问题"
}

检查 RN Bundle 热更新

GET /api/v1/rn/check?appId=&moduleId=home&version=1.0.0&platform=ANDROID

响应

{
  "hasUpdate":   true,
  "version":     "1.0.1",
  "downloadUrl": "https://cdn.example.com/bundles/home_1.0.1.bundle",
  "md5":         "a1b2c3d4...",
  "size":        204800
}

下载 Bundle

downloadUrl 返回的 URL 可直接 GET 下载,响应体为 bundle 二进制内容。


租户服务(/api/

创建应用(租户管理后台调用)

POST /api/apps
Authorization: Bearer <tenant_token>
Content-Type: application/json

{ "name": "我的 App", "platform": "ANDROID" }

数据模型

ImMessage

{
  "id":               "uuid",
  "appId":            "ak_demo_chat",
  "fromUserId":       "user_001",
  "toId":             "user_002",
  "chatType":         "SINGLE",
  "msgType":          "TEXT",
  "content":          "Hello!",
  "status":           "SENT",
  "mentionedUserIds": [],
  "createdAt":        "2026-04-24T10:00:00"
}

ImGroup

{
  "id":        "group_uuid",
  "appId":     "ak_demo_chat",
  "name":      "开发群",
  "creatorId": "user_001",
  "memberIds": ["user_001", "user_002"],
  "adminIds":  ["user_001"],
  "createdAt": "2026-04-24T10:00:00"
}

错误码

HTTP 状态 code 说明
400 400 请求参数错误
401 401 Token 无效或过期
403 403 无权限操作(如撤回他人消息)
404 404 资源不存在
500 500 服务器内部错误

错误响应格式:

{ "code": 403, "message": "只能撤回自己发送的消息" }