调用远程服务
# 1 rest图元介绍
REST服务活动图元用于调用一个外部Rest服务的接口。例如调用短信、地图等服务接口。调用接口组件可以实现应用程序与外部系统的数据交互。接口的输入参数和返回值支持SDO数据格式,即对于输入参数可以传入一个DataObject对象,或者DataObject的Xpath(如:order/orderID),或一个基本类型变量,返回值则可以得到的是一个DataObject对象或一个基本类型。可以将返回值封装为ResponseEntity对象。
# 1.1 使用rest图元
示例一:如何使用rest图元调用远程接口获取数据?
这里以调用一个GET类型的应用查询接口为例,确定接口传参在url上,返回值类型为应用SDO实体。
1.参数定义
逻辑流属性定义中定义SDO类型返回值out
。
2.rest服务图元属性配置
rest服务配置中输入正确的请求URL;Http Method
选择框中选择GET类型;创建输入参数与返回值,参数与返回值名称、数据类型以及传参类型都需要与实际接口定义一致;输入参数中可设置接口请求头中Content-Type参数与访问凭证信息等。
说明:
URL格式例如http://{ip}:{port}/xxx;
URL路径也可以使用应用名称,例如:http://SERVICE-PROVIDER:8080/api/user/getName/。
其中,应用名称SERVICE-PROVIDER对应项目下application.properties中的spring.application.name。
传参类型选项有五种,分别为:URL、HEADER、BODY、QUERY、MULTI_BODY。
其中"URI"类型,同时支持Path上的变量和Query的变量;
如:http://SERVICE-PROVIDER:8082/say-hi/{name}?username={name}。
3.执行调试
执行该逻辑流,通过开启断点调试来查看调用rest服务后获取到的结果数据。
可以看到返回值out成功获取到rest服务接口返回值。
# 2 使用三方服务
三方服务是对外部系统服务的集成导入,通过REST服务图元以逻辑流的形式进行调用。三方服务集成导入详情请点击后方链接查看——三方服务
示例二:逻辑流中如何使用三方服务接口?
1.选中三方服务接口
托动右侧三方服务教师信息管理服务集下的根据id查询接口至逻辑流编辑面板内,面板内会自动生成对应的rest服务图元,以及自动填充URL,HTTP Method以及接口参数与返回值。
2.参数定义
逻辑流属性配置中定义好三方服务接口的输入参数与返回值的值变量。
3.rest服务接口参数配置
rest图元属性设置中,在参数值输入框输入定义好的逻辑流输入参数id
,返回值的值输入框输入逻辑流返回值teacher
。
4.执行调试
输入参数id
的值,通过断点调试即可到查看三方服务接口调用返回值。
# 3 查看调用日志
逻辑流中使用rest服务图元调用接口后,调用信息都会记录在当前应用服务的日志内,对应的日志文件为logs文件夹下eos-dap-trace.log文件。
示例三:如何查看调用日志?
1.日志参数配置
EOS服务日志提供rest调用入站出站请求参数打印,只需要后端服务配置文件application-afc.properties
中开启相关配置即可,配置说明如下:
#是否记录HTTP入站请求
eos.logging.inbound.enabled=true
#是否记录HTTP出站请求
eos.logging.outbound.enabled=true
#是否记录HTTP头
eos.logging.outbound.hh-enabled=true
#是否记录HTTP体
eos.logging.outbound.hb-enabled=true
2.执行逻辑流
这里以示例一逻辑流中定义的rest服务图元为例,查看逻辑流中rest服务图元配置,并执行逻辑流。
3.查看调用日志
打开应用所在文件目录,找到logs文件夹下的eos-dap-trace.log文件并打开,查看最新行日志记录。
可以看到最新的日志记录中comp
参数为REST_TEMPLATE
,远程调用请求的请求头、入参出参等全部输出出来。