电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

API协议太多,如何高效集成?快速点进激活技能!

来源:金蝶云社区作者:金蝶2024-09-234

API协议太多,如何高效集成?快速点进激活技能!


如同不同国家和地区之间存在不同的语言一样,在计算机的世界里也有不同的接口协议:基于SOAP的WebService,基于RESTful的WebAPI,以及像SAP和MQ一样特殊的接口协议等等。


面对如此众多的协议,有没有什么高效的方法架起不同系统间的“桥梁”?是通过预置大量不同类型的接口?还是从中抽象出一个共通的框架?


让我们从云之家集成这个真实案例来一探究竟吧。




1 场景介绍 


云之家作为新一代智能协同云服务产品,可以连接企业现有业务(SaaS产品),帮助企业/团队打破部门与地域限制,提高沟通与协作效率。


因此,云之家在企业数字生态化建设过程中起到了至关重要的作用,与不同SaaS产品之间集成的需求也就应运而生。


云之家各业务系统(SaaS产品)的集成如何高效实现呢?


用户可以将云之家的接口(如:人员同步、组织同步等)登记到集成服务云,由集成服务云去完成复杂的身份鉴权、限流、监控等工作,简化开发者的工作,一次配置,多次可用。同理,企业微信,钉钉也可以。


所以,集成服务云作为一个中间媒介,为了满足客户复杂的业务需求,除了预置大量常用的接口外,还提供了通用框架让用户配置其他系统的连接方式。


通过该框架,用户可以根据云之家的开放API调用机制新建连接类型配置前台表单。然后,即可把前台的连接配置作为外部系统的一次性鉴权机制,无需重复考虑外部系统的连接和API的调用问题。


登记外部系统API的完整步骤图


集成服务云的API集成框架具体如何使用呢,接下来一起看看详细的配置步骤吧~


2 配置步骤

Step1 新建连接器类型


首先我们需要根据云之家开放平台登录文档API调用文档来新建连接类型,其作用为建立云之家登录和调用的规则。下图展示了云之家登录鉴权的请求地址和参数



在配置完成后,用户便可将该连接类型作为云之家的统一连接方式,然后通过第二步中新建的连接配置来登记连接信息,从而复用该连接类型。具体操作流程如下:


(1)打开“集成管理”,找到菜单“高级应用”,打开“连接类型”。选择一个以WebApiConnectionFactory为工厂类的连接类型点击复制。



输入恰当的编码和名称,“配置表单”项设置为“isc_database_link_webapi”。


注:如需定制配置表单,请在开发平台搜索“isc_database_link”,继承该表单增加新“布局”,并且打开表单连接配置的可见性都打开。


$params          API调用参数,由该API集成对象参数转换脚本生成

$session          会话信息,来自会话登录脚本或会话刷新脚本的结果

$service           被调用的服务

$proxy_user     代理用户(期望在目标系统以该用户执行服务)

$protocal          http协议,取值为:https 或 http

$ip                   服务器IP或域名

$port               服务器端口

$user                   登录用户名

$password         登录密码

$lang                  登录语言,取值为:zh_CN、zh_TW、en_US

$data_center      登录帐套,对于非多账套系统该值为空


上述脚本中$表示可以访问的内置系统变量,其中蓝色字体部分表示配置表单isc_database_link_webapi上的配置信息。



(2)编辑会话登录脚本,云之家的脚本如下:


var url = $protocal + "://" + $ip + ":" + $port + "/gateway/oauth2/token/getAccessToken";
var param = {"eid": $user,"secret": $password,"timestamp": L NOW,
"scope""resGroupSecret"};
var session = HttpInvoke(url, param).result.data;
session.$refreshTime = L(NOW) + session.expireIn * 1000 - 30000// 设置会话刷新时间
return session;


(3)编辑会话刷新脚本,云之家的脚本如下:


var url = $protocal + "://" + $ip + ":" + $port + "/gateway/oauth2/token/refreshToken";
var param = {"eid": $user,"refreshToken": $session.refreshToken,"timestamp": L NOW,
"scope""resGroupSecret"};
var session = HttpInvoke(url, param).result.data;
session.$refreshTime = L(NOW) + session.expireIn * 1000 - 30000// 设置会话刷新时间
return session;


(4)编辑API调用脚本,云之家的脚本如下:


if($service contains "?"){
throw "云之家API(" + $service + ")中包含问号!";
}
if(!($service startsWith "/")){
$service = "/" + $service;
}
if(!($service startsWith "/gateway")){
$service = "/gateway" + $service;
}
// 以上为API的URL格式检查,原则上是可以取消的。

use String;
var url = $protocal + "://" + $ip + ":" + $port + $service +"?accessToken=" + $session.accessToken;
var param = "eid=" + $user + "&data="+URLEncode(FormatJson($params));

var result = ParseJson(HttpPost(url, param,"UTF-8").result);
if(!result.success){
throw (result.error+"\n错误号:"+result.errorCode);
}else{
return result.data;
}


(5)编辑服务器状态检测脚本,云之家的脚本如下:


var url = $protocal + "://" + $ip + ":" + $port + "/gateway/oauth2/token/getAccessToken";
return HttpPost(url, null"UTF-8");
// 该脚本执行不抛出异常,则集成平台认为被调用的系统可用


(6)保存后,提交并启用。


1.修改连接器类型的工作必须在开发环境进行,每次修改脚本后,必须点击刷新环境按钮才能生效。

2.以上脚本必须首先在“集成工具 - 脚本执行工具”

API协议太多,如何高效集成?快速点进激活技能!

如同不同国家和地区之间存在不同的语言一样,在计算机的世界里也有不同的接口协议:基于SOAP的WebService,基于RESTful的WebAPI,以及像SAP...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信