概述
一般原则
HTTP 请求方式
KCS服务尽量坚持尽可能接近标准HTTP和REST
| 请求方法 | 用法 |
|---|---|
GET |
取回资源 |
POST |
创建一个新的资源或查询一个资源 |
PUT |
更新一个存在的资源 |
DELETE |
删除一个存在的资源 |
HTTP 状态码
KCS服务尽量坚持尽可能接近标准HTTP和REST
| 状态码 | 用法 |
|---|---|
200 OK |
HTTP请求成功的标准响应。实际的响应将取决于请求的方法。 |
400 Bad Request |
由于客户端错误,服务器不能或不会处理请求。 |
401 Unauthorized |
未认证。 |
404 Not Found |
找不到请求的资源。 |
500 Internal Server Error |
服务器内部错误。 |
调用地址
格式
https://{tenant_kcs_domain}/api/sdk/{relative address}
其中括号包含的部分含义如下:
| 变量 | 说明 |
|---|---|
| tenant_kcs_domain: 租户KCS域名 | 租户自己的KCS域名,例如:knowledgeservice.udesk.cn |
| relative address: 接口相对地址 | API的相对URL |
示例 登录获取身份令牌的完整接口地址:
https://knowledgeservice.udesk.cn/api/auth/open/token
鉴权方法
获取身份令牌
参数
| 名称 | 说明 |
|---|---|
| appId | 租户唯一标识,也是租户身份认证标识,请联系沃丰工作人员获取; appId获取:登录kcs页面-->首页-->打开F12→init接口 |
| userId | 用户id,登录【用户中心平台--用户管理】,页面上可见用户id |
返回 登录获取身份令牌返回token,其他接口需要添加request parameter:
Authorization Bearer {{token}}
有效期 每50分钟失效,需要重新获取token;
接口限流
SDK接口通过guava的RateLimiter实现接口的限流
两种限流方式
1,全局统一控制(现在正在使用)
@RateLimit(permitsPerSecond = "${rate.limit.adapter.out.permitsPerSecond}", timeout = "${rate.limit.adapter.out.timeout}")
在yml文件中配置
rate:
limit:
default:
enabled: true
adapter:
out:
permitsPerSecond: 8 # 每秒最多8次请求
timeout: 100 # 获取令牌的等待时间上限为100毫秒
2,使用自定义限流参数(自定义限流优先,如果有就走自定义,没有配置就走配置文件)
@RateLimit(permitsPerSecond = "8", timeout = "100")