API 域名与环境
Open API 部署在你自己的环境(私有化/自托管),没有固定的公有云域名。调用地址由三部分组成:部署域名 + 路径前缀 /im/v2 + 接口路径;例如 https://im.example.com/im/v2/user/register。
私有化部署地址
| 环境 | 示例地址 | 说明 |
|---|---|---|
| 本地开发 / 自测 | http://127.0.0.1:8080 | 服务端缺省监听 127.0.0.1:8080;启动时设置 IM_ADDR 可改端口(例如 18080),示例中的地址需同步替换 |
| 测试 / 预发 | https://im-test.example.com | 建议与生产同构:反向代理 + HTTPS + 独立应用与密钥 |
| 生产(私有化) | https://im.example.com | 对外只暴露 HTTPS;证书、限流、鉴权审计在网关层完成 |
| 内网服务调用 | http://im.internal:18080 | 仅限可信内网;跨网调用请使用 HTTPS 或专线 |
生产环境请使用 HTTPS
当前仓库内的本地演示部署默认无 TLS、无反向代理,仅用于本机或可信内网。生产环境请在 IM Server 前置反向代理并强制 HTTPS。
路径前缀
路径前缀
/im/v2所有 Open API 的路径都以 /im/v2 开头;接口文档中的“路径”列展示的是相对路径,完整请求地址 = {部署地址}/im/v2{接口路径}。
| 接口 | 完整请求地址示例 |
|---|---|
| user.register | https://im.example.com/im/v2/user/register |
| message.private.publish | https://im.example.com/im/v2/message/private/publish |
| callback.delivery.list | https://im.example.com/im/v2/callback/delivery/list |
X-Request-Id
响应信封中的 requestId 用于串联请求与日志。调用方可以通过可选请求头 X-Request-Id 指定追踪 ID;缺省、为空或超过 128 字符时由服务端生成,响应中回声该值。
Shell
curl -sS -X POST "https://im.example.com/im/v2/user/register" \
-H "Content-Type: application/json" \
-H "X-Request-Id: req_7f3a9c" \
-H "App-Key: demo" -H "Nonce: 9f2a7c1b" \
-H "Timestamp: 1750000000000" -H "Signature: 372e885320aabd997aafc5491f9d90fdca94432e" \
-d '{"userId":"user1","name":"Alice"}'JSON
{
"code": 0,
"data": {
"userId": "user1",
"name": "Alice",
"createdAt": 1750000000000
},
"requestId": "req_7f3a9c"
}协议与网络
- Open API:HTTP/1.1 或 HTTP/2,
POST+ JSON;生产环境建议 HTTP/2 与 TLS 1.2+。 - 客户端长连接使用另一套端点(WebSocket
/ws),与 Open API 分离部署或复用同一反向代理。 - 反向代理需透传请求头(App-Key / Nonce / Timestamp / Signature / X-Request-Id),并确保请求体不被改写。
- 如使用 CDN/WAF,请将 Open API 路径排除在缓存之外,避免 POST 请求被缓存。
相关说明
- 鉴权与签名:请求头、签名算法与鉴权失败错误码
- 请求与响应数据格式:JSON 请求体、响应信封与分页
- 状态码与错误码:全部错误码、HTTP 状态与重试建议
- 限频、配额与容量限制:协议限制与分页上限
- WebSocket 协议:客户端长连接与帧结构
- 服务端回调:回调地址与投递策略