Skip to main content
Version: 1.x

框架应用开发

框架应用负责整个系统的 Layout 设计以及所有子应用的管理

将应用升级为框架应用

只需要修改配置文件config/config.ts,将其中的isPortal设置为ture,APP_ID设置为portal就可以了,框架应用不宜包含具体业务模块,具体业务模块应该下沉到子应用来实现

应用管理

框架应用默认提供了应用管理的功能,所有的子应用都需要管理起来,否则无法在框架中使用,一个应用需要提供如下信息 PNG

  • 应用 ID,这个必须唯一,每一个接入的子应用都需要提供应用 ID,这个应该 ID 非常重要,在很多地方都会使用,并且一旦定下来,不可随意修改
  • 应用名称,一般就是子应用的名称
  • 应用地址,子应用地址
  • 应用类型,包含普通子应用Godzilla子应用Godzilla微应用

应用类型

  1. 普通子应用,这种子应用属于异构系统(旧系统或者三方系统),目前仅支持以iframe的形式集成
  2. Godzilla子应用,用Godzilla框架开发的子应用,以iframe的形式集成,一般这种模式仅用来做框架开发测试,如果采用Godzilla框架来开发,那么最好以Godzilla微应用的方式集成
  3. Godzilla微应用,用Godzilla框架开发的子应用,以single-spa的形式集成

应用数据持久化

目前应用数据是存在在BFF中的json文件,当应用重新部署,数据可能会丢失,数据最好需要存储在服务端。 修改bff中src/lib/dao/application.ts文件,修改这里面的接口实现,调用服务端的接口进行操作

import { BaseDao } from './base_dao';
import { provide, inject } from 'midway';

const tableName = 'applications';

@provide()
export class ApplicationDao extends BaseDao {
// db: any;
constructor(@inject() ctx) {
super(ctx);
// this.db = this.app.lowdb.get(tableName);
}
/**
* 根据应用ID获取应用信息
* @param appId 应用ID
*/
getByAppId(appId) {
// TODO 调用服务端接口实现
}

/**
* 保存应用数据
* @param data 应用数据
*/
save(data) {
// TODO 调用服务端接口实现
}

/**
* 删除应用数据
* @param appId 应用ID
*/
del(appId) {
// TODO 调用服务端接口实现
}

/**
* 更新应用数据
* @param data 应用数据
*/
update(data) {
// TODO 调用服务端接口实现
}

/**
* 获取所有应用数据
* @param params 查询条件
*/
getAll(params) {
// TODO 调用服务端接口实现
}
}