创建 API 的测试调用环节,可通过调用分析查看 API 调用过程所经过的环节、执行内容,以及每条执行内容的耗时瀑布图,用户可直观地看到性能损耗的关键点,以便快速调整。
例如 Server 端的数据解密、行级权限等校验耗时整体明显增加时,可能是 Server 资源到了瓶颈,可进一步排查 Server 端的负载;数据源查询耗时增加则可能是当前数据源查询并发变高。
DataAPI 的安全性
安全层面,DataAPI 从开发及调用两个层面进行了全方位的保障。
开发安全
● 服务分组
重要 API 在发生逻辑变更时,可以通过服务分组来测试新逻辑的可靠性,通过类似 AB测试的方式将可控比例范围内的流量导向新逻辑,出现问题时立即调整分流比例切换回原逻辑,能够在用户无感知的情况下最大程度降低对业务侧的影响。
● 角色权限管理
*台内置多个固定角色,区分了 API 查看、开发、申请调用权限、管理等功能的场景,能满足90%的用户需求。另外管理员可根据企业内部权限管控要求调整固定角色权限点或者新增自定义角色,灵活把控用户权限配置。
● 测试/生产项目隔离
对于 API 开发投产安全性要求一般的场景,流程一般是 API 创建-提交网关测试-发布,发布后可直接生产调用。如果企业内部对开发和生产环境进行了严格隔离,也可在开发环境完成开发测试后,通过绑定项目一键发布或导出导入式发布复制到生产环境。这种方式进一步规范了生产 API 的变更流程,减少了误操作发生率。
调用安全
● 调用申请审批
DataAPI 租户层的 API 市场汇集了各个项目发布的 API,实现 API 一定范围内的共享时也对 API 调用做了权限管控,用户在申请 API 调用权限时可控制其调用次数、周期及字段粒度的输出参数访问。对于某用户已经获得审批通过的 API,管理员也可在到期前进行权限回收。权限申请与审批操作方便、管理粒度细、灵活度高。
● 2种调用权限认证方式
· API-TOKEN / USER-TOKEN:每个用户的单个 API 一个 TOKEN / 每个用户的所有 API 一个 TOKEN,用户对某个 API 的调用权限申请通过时*台会提供 TOKEN 信息, TOKEN+API URL 即可正常调用 API,适用于对调用安全要求一般的场景
· AK/SK:通过密钥和加密签名的方式对 API 的调用进行认证,安全性保障更好
● 数据传输加密
· RSA+AES:支持对大量数据加解密的同时,保证了加解密速度,应用于一些对于用户个人信息或其他敏感信息加密的安全性要求较高的场景
· SM2+AES:SM2 在安全、速度等方面较 RSA 更优,可按企业内部要求选择数据传输加密方式
● 行级数据权限控制
用户可在数据源层面配置用户数据访问行粒度的权限,然后将这个权限控制应用到指定的 API,实现更精细化的权限管控。
● 异常调用的服务熔断
针对一些高并发调用的 API 可以配置熔断策略,当单位时长的异常调用达到一定的次数等条件时,为保证 API 整体服务不瘫痪,DataAPI 会对该 API 从 Gateway 处开启一定时长的熔断,经过熔断时长后探测服务健康状态并进行自动恢复。
● IP 地址安全组
IP 地址安全组中可划分 IP 黑名单与白名单,对于有调用 IP 约束的 API,确保不会在非法 IP 中被调用。
DataAPI 的稳定性