乐趣区

关于数据库:CloudQuery-首次开放APIv141将开放部门导入和用户导入

「API 具备功能丰富、倒退迅速且公共可用的特点,极大地推动了以 API 为核心的业务增长。起因有很多,比方 API 随处可用的个性、高效的开发和部署平台,以及解脱资金密集型需要的金融模型。」

——《Evolution of the API economy》

随着企业对客户体验关注度的减少,越来越多企业冀望以低成本、无摩擦的形式融入成熟的生态系统,由此引出「OpenAPI」的概念。API 以其高度的灵活性、敌对性来面对泛滥前来调用的开发者,胜利在各分布式应用之间进行接口调用与数据互通,结构一座有形的数据桥梁。

OpenAPI 描述语言也被称为接口描述语言(IDL)。描述语言通常以结构化的形式造成文档,因为同一工具生成的所有文档都遵循雷同的格局约定,所以比自在模式的文档更具备可读性。此外,描述语言通常足够准确,能够主动生成各种软件类库,不便以各种语言来接入、调用 API。

CloudQuery 凋谢 API 的意义:从社区中来,到社区中去

CloudQuery 是一款出生于社区,成长于社区的产品,各位社区用户见证着咱们的成长,但在咱们本身性能还未欠缺的时候,之前很多用户提到的外部 OA、组织架构对接性能就显得分外力不从心。自 CloudQuery 诞生的那一天起,咱们就赋予了它根本的价值观:「凋谢、容纳、互助、共赢」。所以咱们产品逐步趋于稳定的明天,也终于能够实现当初「凋谢」的承诺。

在 1.4.1 版本中咱们将凋谢首个用户模块的 API,后续也会逐渐凋谢审计、权限模块 API。咱们来自于社区,最终也会回归社区,心愿最初是咱们和社区内的用户一起来把 CloudQuery 做成一款广受欢迎、贴合数据操作人员应用场景的数据库工具。

技术实现

前文曾经提到各种新兴行业趋势和技术曾经导致 API 激增,以后应用程序组件不再是单个过程中在一台机器上彼此通信的外部对象,而是通过网络互相通信的 API。网络的信息交互页减少了被攻打的危险,甚至 OWASP 曾经推出了针对 API 攻打的十大破绽列表,API 在往年成为了网络安全的重中之重。

CloudQuery 作为数据管控平台,数据安全管控对其的重要性显而易见,所以在设计整个 OpenAPI 模块时咱们在确保申请安全性、可靠性方面着重进行了多重加固。

发动申请时,服务端会以申请头中的 API 密钥来进行用户鉴权,鉴权胜利后会给客户端颁发 token,token 具备时效性,在进行时效性校验的同时防止了反复信息重复查询数据库和比照等操作,也进步了服务器响应速度。如果依然放心在输出明码时被网络抓包的形式窃取,则能够通过配置 HTTPS 的形式来进行传输加密,具体配置形式能够参考《CloudQuery 平安系列(一):Http 与 Https》。

在申请过程中,身份认证无疑是最重要的环节。OpenAPI 标准中咱们能够应用自定义对象和属性,针对每个 api 接口进行扩大,在定义 api 模块时咱们都会定义 api 本身的平安计划、利用级别,例如在定义用户模块的利用级别时就能够定义它的反对范畴,避免其余歹意用户进行越权调用。

Paths:
    /users:
        Post:
            Security:
                - OAuth2:[admin]

应用办法

CloudQuery 对外开放的接口承受「GET」和「POST」两种调用形式,字符编码对立应用「UTF-8」编码。对于所有的「POST」调用形式接口,提交的数据格式对立为「JSON(application/json)」格局。

接口调用前需管理员在 CloudQuery 进行「开发者受权」申请接口调用的身份信息。平台会主动生成 appId,secret 信息,在代码调用接口中应用。

本次 v1.4.1 版本,CloudQuery 凋谢了「组织架构」模块『部门导入』和『用户导入』的 API。 具体的《OpenAPI 开发者文档》可在官网文档站查看,地址为:https://cloudquery.club/docs/。

咱们以「用户导入」为例来阐明应用办法。

输出参数:

参数名称 类型 是否必填 形容 是否用户标识加密
appId String 用户标识 id
source String 数据起源
currentTime Long 以后工夫
status String 加密字段生成的标识 key
userInfos UserInfo 用户详情

申请示例:

{
​    "currentTime":"1624520308159",
​    "source":"AD 域",
​    "appid":"ryca9fwJ",
​    "status":"bb8058d05cec73ba5dac33a9f6e19977",
​    "userInfos":[{
​       "Dept":"cqUser",
​       "userName":"测试用户",
​       "userId":"test123",
​       "userGender”:”MALE",
​       "password":"abc",
​        "telephone":"15786547114",
​        "email":"cloudquery@bintools.cn",
​        "jobNumber”:"A001"
  }]
}

胜利实例:

{
    "code": 200,
    "message": "success"
}

返回后果一览:

错误码 错误信息 排查思路
4600 有效的 appId 应用 appId 的值与管理员发放的不匹配
4610 有效的身份认证 Secret 的值不对。加密认证的 key 与服务器不统一
4620 数据同步存在异样数据 能够查问 cq 的零碎库
4630 服务调度异样 存在服务没有启动。查看执行日志

在以后企业外部利用简单的场景下,OpenAPI 正在逐渐取代之前数据间接替换的形式进行利用间数据互通,凋谢 api 并不意味着将外部数据齐全裸露,反而是以更加平安的形式来实现信息交互。随着 CloudQuery 的一直迭代,咱们也会在将来更加重视企业外部生态连贯,铸造更敌对的一体化平台。

官网地址:https://cloudquery.club/

退出移动版