宜搭调用外部接口后将数据回传到宜搭中
1. 背景
在真实的业务场景下,系统与系统之间的数据交互通常不会只有简单的单向传输。在宜搭与外部系统的数据交互过程中,往往会存在较多的依赖,业务数据会有复杂的计算逻辑。下面将为大家介绍如何在宜搭内调用外部服务,外部服务对数据做额外的逻辑处理后,再将数据更新至宜搭的指定数据实例中。
1.1 数据交互流程图
下图为真实业务场景下的数据交互流程图,需求:
- 在宜搭内提交表单后,触发请求调用外部服务。
- 外部服务接收到宜搭侧传入的参数在服务端做逻辑处理。
- 将处理后的数据回传到宜搭(更新指定数据实例)。
2. 操作步骤
2.1 在服务端定义外部接口,外部服务方法参考如下:
package com.example.demo.controller;
import com.alibaba.fastjson.JSON;
import com.example.demo.util.GatewayRequestUtil;
import com.example.demo.model.GatewayResult;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.Map;
@RestController
@RequestMapping("/yida")
public class YIDAController {
/**
* 请求接口地址
*/
public static final String UPDATE_FORM_DATAS = "/yida_vpc/form/updateFormData.json";
@PostMapping("/updateFormDatas")
public String updateFormDatas(@RequestParam String appType,
@RequestParam String systemToken,
@RequestParam String userId,
@RequestParam String formInstId,
@RequestParam String updateFormDataJson) {
GatewayResult result = null;
try {
Map<String, String> param = new HashMap<String, String>();
param.put("appType", appType);
param.put("systemToken", systemToken);
param.put("userId", userId);
param.put("formInstId", formInstId);
param.put("updateFormDataJson", updateFormDataJson);
result = GatewayRequestUtil.baseRequest(param, UPDATE_FORM_DATAS);
System.out.println(updateFormDataJson);
System.out.println(result);
return JSON.toJSONString(result);
} catch (Exception e) {
e.printStackTrace();
}
return "error";
}
}
通过代码可知服务端拿到了宜搭侧传入的参数,再取相关参数作为宜搭数据更新接口的入参,调用宜搭实例更新接口。(为了便于大家解读,本质上该方法只是做了简单的接口转发,大家可以根据自己实际的业务需要,自定义服务方法内的数据处理逻辑)
2.2 部署并上线该服务
从代码中得知该接口地址为:${域名/服务器地址}/yida/updateFormDatas
2.3 在宜搭内配置第三方服务回调,将外部服务的接口地址以及接口入参配置上。
参考上述代码示例,方法定义模块,该接口需要以下几个参数。
public String updateFormDatas(@RequestParam String appType,
@RequestParam String systemToken,
@RequestParam String userId,
@RequestParam String formInstId,
@RequestParam String updateFormDataJson) {
return true;
}
所以我们在宜搭内注册服务时,也需要将对应参数配置上,参考文档:服务注册
2.4 在表单内配置表单提交时,触发该服务回调
表单编辑页面
2.5 提交表单进行验证,查看「接受更新」表单内指定的数据实例
根据数据管理页内的数据结果可以得知,服务链路已通。宜搭侧将数据传到外部服务端,服务端拿到数据后做逻辑处理,再调用宜搭数据更新实例接口更新「接受更新」表单内指定实例的数据。
3. 视频讲解
--------------------欢迎关注我们--------------------
本文档对您是否有帮助?