EOS Low-Code Platform 8 EOS Low-Code Platform 8
产品简介
安装部署
应用开发
专题场景实战案例
低代码(Low-Code)开发参考手册
高开开发参考手册
流程开发参考手册
AFCenter 使用指南
Governor 使用指南
FAQ
  • 高开应用远程调用另一个应用接口
  • 1.场景介绍
  • 2.效果展示
  • 3.操作步骤
  • 3.1开发产品管理的微服务应用
  • 3.2获取远程调用接口
  • 3.3远程调用的实现
  • 3.4启动应用

# 高开应用远程调用另一个应用接口

# 1.场景介绍

本地高开应用,通过远程调用接口的方式,在“AFCenter“中创建“产品经理”的角色。

本文以上述场景,讲解在高开应用中远程调用另一个应用的接口的实现方式。

# 2.效果展示

# 3.操作步骤

# 3.1开发产品管理的微服务应用

参考文档“开发逻辑流代码的EOS服务”,文档地址:

开发逻辑流代码的EOS服务 (opens new window)

开发完成后,结构如下:

# 3.2获取远程调用接口

通过swagger接口文档,获取AFCenter的“角色管理-新增角色”的API接口。文档地址:

<!--IP和port换成AFCenter后端所在地址-->
http://IP:port/swagger-ui.html#/角色管理/createUsingPOST_19

# 3.3远程调用的实现

在com.primeton.eos.rest.service构建包-运算-Java-com.primeton.eos.rest.service下创建CreatAfcRole类。

代码如下:

package com.primeton.eos.rest.service;

import com.eos.system.utility.JsonUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.*;
import org.springframework.stereotype.Service;
import com.primeton.gocom.afcenter.common.util.RestTemplateHelper;
import org.springframework.web.client.RestTemplate;
import javax.annotation.PostConstruct;

// 创建AFCenter角色的类
@Service
public class CreatAfcRole{
    // 自动装载eos自带远程工具RestTemplateHelper
    @Autowired
    public RestTemplateHelper restTemplateHelper;
    // @PostConstruct注解功能:应用启动时自动执行
    @PostConstruct
    public void init() {
        // ”创建角色“的请求路径
        String  url = "http://localhost:28079/api/afc/roles";
        //AFCenter平台的身份认证
        String Authorization = "41B7267871AAEC1B8E0A76B88D39D0BD";
        // ”创建角色“请求请求头
        HttpHeaders headers = new HttpHeaders();
        // 指定Content-Type:application/json
        headers.setContentType(MediaType.APPLICATION_JSON);
        headers.set("Authorization", Authorization);
        // ”创建角色“请求的请求体
        String requestBody = "{\n" +
                "    \"role\":{\n" +
                "        \"code\":\"Project-Manage\",\n" +
                "        \"name\":\"产品经理\",\n" +
                "        \"types\":\"platform\"\n" +
                "    }\n" +
                "}";
        // 实例化包含请求头和请求体的HttpEntity
        HttpEntity<?> requestEntity = new HttpEntity<>(requestBody, headers);
        // 发起远程调用请求
        String response = post(url, requestEntity, String.class);
        // 处理远程调用的响应
        System.out.println("远程调用成功");
    }
    // eos工具自带方法
    public <T> T post(String url, HttpEntity<?> requestEntity, Class<T> responseType) {
        HttpMethod method = HttpMethod.POST;
        return this.execute(url, method, requestEntity, responseType);
    }
    // eos工具自带方法
    public <T> T execute(String url, HttpMethod method, HttpEntity<?> requestEntity, Class<T> responseType, Object... uriVariables) {
        RestTemplate restTemplate = new RestTemplate();
        ResponseEntity<String> rspEntity = restTemplate.exchange(url, method, requestEntity, String.class, uriVariables);
        return responseType != null && !Void.class.equals(responseType) ? JsonUtil.toObject((String)rspEntity.getBody(), responseType) : null;
    }
}

# 3.4启动应用

通过com.primeton.eos.project.boot-Java-com.primeton.eos.project-Application.java类-运行方式-Java应用程序,启动应用。

启动后可以看到日志中输出远程调用成功。

若出现下图报错,请更换最新的身份认证Authorization值到CreatAfcRole类的Authorization变量。

← 数据实体生成的SDO代码调用示例 提交表单中指定审批人 →