1.14.3 后端HTTP API
1.说明:
外部业务系统使用HTTP API方式作为主要的手段与E聊后端进行对接, 在此之前,需要先获取登录Token,才能进行后面的API操作. 接口的介绍都使用curl 为例,windows平台请先下载git bash 工具,新建一个git bash 窗口,使用curl 来测试. 测试前请启动E聊后端工程,默认的后端端口是8082.
2.API交互方式
E聊支持请求格式为Content-Type为application/json的POST请求对接,返回格式同样也是application/json
3.获取用户 Token
业务系统使用 IM用户登录接口获取登录授权Token, 以后的API http 请求头上需要加入authorization字段, 值为 client TOKEN, 注意client 与 TOKEN之间需要一个空格. 获取登录Token的接口是 /v1/connection/authority_request, git bash格式如下:
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{ \
"appKey": "TSDKTEST00001", \
"auid": "admin", \
"token": "123456" \
}' 'http://localhost:8082/v1/connection/authority_request'
// 返回JSON格式
{
"code": 0,
"errno": null,
"data": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ1c2VySnd0IiwiQVBQX0tFWSI6IlRTREtURVNUMDAwMDEiLCJVU0VSX0FVSUQiOiJhZG1pbiIsImV4cCI6MTY1MTM3NDM5M30.twfRDFv-caGJFXgGtt3sF_PBdM7DSSSVGM97cP078vI3hIHuU5u7X3MKoofsvUAh2dhqHueKZXqedSRAAldSOg",
"msg": "success"
}
Postman的请求格式如下:
其中appKey固定为TSDKTEST00001, auid 为客户端注册的手机号, token 为客户端注册的账号密码. 获取的Token 仅具有当前用户的客户端权限,不能跨账号auid使用,否则会提示"没有访问此API的权限".
4.使用用户Token
以 IM用户-获取用户(POST /v1/user/list) 接口为例, 介绍如何在请求中加入Token. curl 请求格式如下:
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'authorization: client eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ1c2VySnd0IiwiQVBQX0tFWSI6IlRTREtURVNUMDAwMDEiLCJVU0VSX0FVSUQiOiJhZG1pbiIsImV4cCI6MTY1MTM3NTU5MH0.GiWsbVeQUHzl_GgP1bCXOjcYPXsKRcQZFWXfaycDXzqjoZEFUfbetE3u10XYz8BiMEYLcb7doa1fHtRV5Z1j6g' -d '{ \
"auids": [ \
"13800138000" \
] \
}' 'http://localhost:8082/v1/user/list'
Postman的请求格式如下:
在http 的请求头中加入authorization字段,值为client+空格+获取到的Token, 即可请求到API
5.获取admin权限的Token
后端专业在feature_v2.23后支持admin权限的token的获取,该token的权限比用户客户端更大,用户客户端无法获取其它用户的数据,否则会提示"用户:XXX 越权访问其它用户资源", 而使用该admin token 则没有该限制,该admin token仅推荐在后端使用,不要传给前端。 获取token的方式如下:
// admin登录,获取jwt
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{ \
"email": "183186147%40qq.com", \
"password": "123456" \
}' 'http://localhost:8082/v1/admin_login/sdk_user_login'
参数说明:
参数名 | 取值 | |
---|---|---|
登录邮箱地址 | ||
password | 登录密码 | |
返回值: Token
6.使用admin权限的Token
在http 的请求头中加入authorization字段,值为admin+空格+获取到的Token, 即可请求到API
该admin token可以访问后端系统使用@Permission(value = PermissionConst.CLIENT), @Permission(value = PermissionConst.ADMIN) 注解的所有Controller API方法
7. API 文档
更多的API请查阅以下的API文档:
在线API文档: http://8.134.89.229:58082/swagger-ui.html
离线API文档: http://8.134.89.229:58080/downloads/doc/echat_api.doc