后端组件开发案例

后端组件开发案例,比如某个能力在多个低代码应用下都需要用到,那么这种能力就可以下层为一个后端组件,本案例描述了如何开发一个后端组件,开发好组件之后,低代码平台应用如何使用组件的能力。

场景描述

在我们使用低代码平台搭建应用的过程中,常常存在不同的应用需要使用到同一个底层组件能力,这就需要使用后端自定义组件了,本案例讲了以下几个和后端自定义组件开发相关的问题:

  1. 如何开发一个后端组件(starter)?
  2. 如何将开发好的组件注册到环境中?
  3. 多个不同的低代码平台应用如何使用组件中提供的能力?

如何开发一个后端组件(starter)

可以参考boot-starter-demo项目编写一个starter,【下载案例】

  1. 拿到此demo之后解压,可以用idea File->New->Project from Existing Sources…导入到工具中
  2. 导入的时候选择解压出来的pom文件即可
  3. 导入之后,需要根据项目实际情况配置合适的maven settings.xml确保本demo中的依赖包能够从maven仓库中拉取到
  4. 根据项目需要调整demo中的包路径,本demo的包路径是com.seeyon.boot.starter.demo
  5. 组件的pom中parent版本调整,根据项目实际情况调整boot的版本
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.seeyon</groupId>
    <artifactId>boot-starter-demo</artifactId>
    <version>1.0.2</version>
    <packaging>jar</packaging>

    <parent>
        <groupId>com.seeyon</groupId>
        <artifactId>boot</artifactId>
        <!-- parent的版本号可以根据实际情况进行调整 -->
        <version>3.9.5</version>
    </parent>

    <dependencies>

        <dependency>
            <groupId>com.seeyon</groupId>
            <artifactId>boot-starter-appservice</artifactId>
        </dependency>

        <dependency>
            <groupId>com.seeyon</groupId>
            <artifactId>boot-starter-web</artifactId>
        </dependency>
        <!-- 根据项目实际情况可以添加其他依赖jar包 -->
    </dependencies>

</project>

6、调整src/main/resources/metadata/starter_info.json

{
  "name":"boot-starter-demo",
  "caption":"boot-starter-demo.caption",
  "basePackage":"com.seeyon.boot.starter.demo",
  "type":"2"
}

name: 对应pom中boot-starter-demo的值;

caption: src/main/resources/i18n下的一个组件名称国际化key;

basePackage:组件基础包路径;

type:{1:预制组件,2:自定义组件},项目上自定义的组件就写2;

7、在编写appService实现类的时候,注意区分接口是否要暴露为openApi,如果需要暴露为openApi,可以在方法的@AppServiceOperation注解上添加openApi = @OpenApi(isOpenApi = true)属性,需要特别注意的是依赖了当前后端组件的低代码应用的后端微流程可以直接调用组件中暴露为openApi的接口,例如:

package com.seeyon.boot.starter.demo.appservice;

import com.seeyon.boot.annotation.AppService;
import com.seeyon.boot.annotation.AppServiceOperation;
import com.seeyon.boot.annotation.OpenApi;
import com.seeyon.boot.transport.SingleRequest;
import com.seeyon.boot.transport.SingleResponse;
import com.seeyon.boot.starter.demo.api.StudentAppService;
import com.seeyon.boot.starter.demo.domain.service.StudentService;
import com.seeyon.boot.starter.demo.dto.StudentDto;
import org.springframework.beans.factory.annotation.Autowired;

/**
 * Description:
 * Author: weijh
 * Date: 2024/11/12 10:45
 */
@AppService
public class StudentAppServiceImpl implements StudentAppService {

    @Autowired
    private StudentService studentService;


    /**
     * 根据学生姓名查询学生信息,注意openApi = @OpenApi(isOpenApi = true) 意味着这个接口开放了openApi
     * @param request
     * @return
     */
    @Override
    @AppServiceOperation(value = "学生信息", description = "通过姓名查询学生信息", returnValue = "学生信息", openApi = @OpenApi(isOpenApi = true))
    public SingleResponse<StudentDto> selectStudentByName(SingleRequest<String> request) {

        StudentDto studentDto = studentService.selectStudentByName(request.getData());
        return SingleResponse.from(studentDto);

    }
}

如何将开发好的组件注册到环境中

1、开发好组件之后,如果您有maven仓库相关权限可以使用maven deploy命令,将组件对应的版本发布到项目对应的maven仓库中。也可以本地install之后,将jar包拿给项目上的maven仓库管理员手动上传到maven仓库中。

2、登录V8环境上的system-admin账号,找到基础设置->组件管理->后端组件

login_system-admin

backend_component

3、根据组件pom中的group、artifactId、版本以及版本类型(分release版和快照版)进行组件注册

register_backend_component

多个不同的低代码平台应用如何使用组件中提供的能力

1、在注册了组件的环境低代码平台应用组件依赖中按需添加后端组件依赖

add_component1

add_component2
2、应用的后端微流程或者手写代码就可以调用到组件的接口 比如在后端微流程中调用组件中的openApi接口:

microflow_call_openapi1

microflow_call_openapi2

microflow_call_openapi3