GAF快速开始-功能模块组件扩展开发流程

GAF快速开始-功能模块组件扩展开发流程

上一篇文章《GAF安装部署-微服务架构下的云原生部署》介绍如何安装部署GAF,这篇文章

首先,介绍了如何调用后端接口,用于进行扩展开发时在后端代码调用GAF已有的接口。

然后,介绍了功能组件扩展的流程,包括后端工程创建、前端工程、前后端联调、后端代码生成、构建部署、配置路由、配置菜单,通过一个简单的案例说明。

最后,介绍了在开发后端代码中使用微服务远程调用需要注意的点,以及如何获取用户信息。

阅读对象是哪些人群?

开发人员和运维人员

什么时候应该阅读?

在熟悉了GAF的功能模块后,需要根据业务进行功能模块的开发,开发完成后进行部署并集成到GAF

调用第一个后端接口

在登录GAF后,点击右上角关于,选择api文档

image-20220630171037410

然后,选择认证组件(gaf-authentication), 个性化设置,在Host输入http://${主机ip}/api并启用。

image-20220630171136419

然后在token接口,选择账号密码获取token接口,在调试界面输入账户sys_admin和密码123456,获取token。复制返回的"access_token"

image-20220630171913969

然后,选择系统管理组件(gaf-sys-mgt),在全局参数设置里面新增请求头参数,参数名Authorization,参数值Bearer 上一步复制的token,参数类型header。

image-20220630172301468

接着,查看个性化设置里面,确认Host 为http://${主机ip}/api并启用。

最后选择字典接口下的查询字典数据所有树节点接口,调试调用该接口

image-20220630173742050

如何调用后端接口

如果经过网关调用后端微服务接口,则需要加统一前缀api,并且加上请求头Authorization和值Bearer ${申请的token}。直接调用微服务接口,则无需加前缀api。token中包含userid和username,下游微服务可通过token获取用户的userid和username。

申请token接口

image-20220630175002994

若通过网关调用,则加api前缀。可使用postman调用,如下图。

image-20220630175237857

功能组件扩展

后端工程创建与说明

在GAF的开发运维菜单下,点击扩展说明,输入应用名称和应用访问路径前缀,得到根据模板生成前后端工程命令。如下图

image-20220630175539647

linux shell:

mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate \
-DgroupId="com.supermap.extend1" \
-DartifactId="extend1" \
-Dversion="1.0.0-SNAPSHOT" \
-DpackageName="com.supermap.extend1" \
-DgafVersion="3.0.0.pro-alpha-SNAPSHOT" \
-DservicePrefix="extend1" \
-DarchetypeGroupId="com.supermap.gaf.archetype" \
-DarchetypeArtifactId="gaf-spring-rest-archetype" \
-DarchetypeVersion="3.0.0" -DinteractiveMode=false \
-DarchetypeCatalog=https://nexus.gaf.net.cn/repository/maven-public/ \
-Dline.separator=$'\n'

windows power shell:

mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate -DgroupId="com.supermap.extend1" -DartifactId="extend1" -Dversion="1.0.0-SNAPSHOT" -DpackageName="com.supermap.extend1" -DgafVersion="3.0.0.pro-alpha-SNAPSHOT" -DservicePrefix="extend1" -DarchetypeGroupId="com.supermap.gaf.archetype" -DarchetypeArtifactId="gaf-spring-rest-archetype" -DarchetypeVersion="3.0.0" -DinteractiveMode=false -DarchetypeCatalog=https://nexus.gaf.net.cn/repository/maven-public/ -Dline.separator=$'\n'

生成后端工程,结构如下图。

image-20220701004149419

│  pom.xml                                                   # 微服务相关的依赖和gaf相关的依赖
│
└─src
    └─main
        ├─java
        │  └─com
        │      └─supermap
        │          └─extend1
        │              │  Application.java                    # 启动类,包含一些Bean扫描包路径,以及对服务发现客户端和Feign的开启
        │              │
        │              ├─commontypes
        │              │      AppBean.java
        │              │
        │              ├─controls
        │              │      AppRestController.java
        │              │
        │              └─services
        │                  │  AppService.java
        │                  │
        │                  └─impl
        │                          AppServiceImpl.java
        │
        ├─k8s
        │      docker-entrypoint.sh                          # 将容器的启动命令
        │      Dockerfile                                    # 用于将jar构建为镜像的Dockerfile
        │      gaf-extend-deploy-backend.yaml                # 在iManager K8S上部署的GAF,扩充站点,增加微服务的编排文件
        │
        └─resources
                bootstrap-dev.yml                            # 本地开发环境的配置,包含数据源和mybatis相关配置
                bootstrap-prod.yml                           # 生产环境配置

注意:设置IDE的Line sperator 为 LF,确保文件的行分割符为LF

前端工程创建与说明

使用如下命令生成前端工程

npm config set registry https://nexus.gaf.net.cn/repository/npm-group
yarn global add @gaf/create-gaf-project
create-gaf-project extend1

子应用
extend1
extend1
10200
GAF UI 框架
是
extend1

得到如下工程结构

image-20220701013311609

前端基于Vue, Ant Design Vue, GAF-UI,微前端qiankun等技术栈,

前后端启动联调

在后端IDE中导入后端工程,启动时设置激活的配置文件为dev

image-20220701014247186

然后,在Application类中启动SpringBoot程序

image-20220701014454663

注意1:本地需要提前安装JDK1.8及以上、Maven 3.6.3及以上、配置好后端IDE

在前端工程根目录下,执行如命令

yarn install
yarn serve

注意2:需要提前安装nodejs 16.13.2及以上、安装yarn1.22.5及以上、并配置好yarn和npm的仓库地址为https://nexus.gaf.net.cn/repository/npm-group

接着,http://localhost:10204 查看前端启动情况

image-20220701015951747

代码生成

在GAF后台界面, 开发运维->组件扩展->代码模板管理,新增默认的模板并上传。http://gaf.net.cn/download/gaf/other-resources/front-back-mvc-vm.zip

image-20220701093951246

在 开发运维->组件扩展->代码生成菜单下,使用刚才上传的模板,生成单表的前后端代码。步骤如下。

在数据库中创建表event,表示水管巡检维修中的事件,代表维修任务,包含 任务内容、任务类型、详细地址等, 可被分配指派给处理人员。DDL如下。

create 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值