概述

一般原则

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")