简化的架构治理:使用 NocoBase 构建应用程序目录

本文的目标是展示 NocoBase 在无代码开发 Web 应用方面的潜力和易用性。

Leandro Martins|

这篇博客由 Leandro Martins 创作,并最初发表在使用 NocoBase 构建应用程序目录

本文的目标是展示 NocoBase 在无代码开发 Web 应用方面的潜力和易用性。作为一个案例研究,我将创建一个应用程序目录来辅助架构治理。此案例将使用 NocoBase 的功能,包括建模、安装、创建表格、菜单、表单、图表以及工作流。

本文将使用以下技术:NocoBase、Postgres 和 Docker。

什么是 NocoBase?

NocoBase 是一个开源平台,由 JavaScript 编写,基于 NodeJS、TypeScript 和 AntDesign,旨在无需编码即可创建自定义应用程序。这是一个低代码后端解决方案,可视化创建表格、自定义表单、工作流自动化和定制界面。

What is NocoBase?.png

NocoBase 的主要亮点

  • 活跃的社区:一个高度活跃的论坛,用于插件开发和问题解决。
  • 不断审查的代码:GitHub 上有频繁更新和贡献,拥有超过 13k 星标。
  • 数据库兼容性:支持主要的关系数据库,如 Postgres 和 MySQL。
  • 可视化数据建模:使用 Main Database 插件可视化定义表格和数据。
  • 广泛的插件库:提供各种免费和付费插件,并支持开发自定义插件。

Key Highlights of NocoBase.png

案例研究

为了展示 NocoBase 的一些功能,我们将创建一个名为架构门户的案例研究。该门户旨在组织企业应用相关数据,具备以下功能:

  • 应用目录
  • 更新提醒,例如版本升级和证书续期。
  • API 目录,用于企业系统。
  • 数据可视化图表

Case Study Overview.png

开发步骤

数据建模

第一步是映射并定义将在架构门户中包含的字段。以下是一个示例:

1. Application Catalog

Applications:
id: Unique identifier.
name: Application name.
description: Detailed description of the application.
stack: Technologies used.
owner: Responsible person or team.
created_at: Creation date.
last_updated: Last update date.

Reminders (Linked to Applications):
id: Unique identifier.
application_id: Reference to the application.
type: Reminder type (e.g., version update, certificate renewal).
description: Reminder description.
scheduled_date: Scheduled date for the reminder.
status: Status (e.g., Pending, Completed).

2. API Catalog

APIs:
id: Unique identifier.
Application_id: Reference to the corresponding system.
name: API name.
description: Functional description of the API.
documentation_url: Link to the official documentation.
last_updated: Last update date.
version: Current version.

安装 NocoBase

对于安装和配置,我选择了使用 Docker 的本地版本。其他安装选项包括 npm 或 Git 源码。

以下是 Docker Compose 的 YAML 配置代码。安装 Docker 后,导航到 YAML 文件所在目录并运行以下命令:

docker compose up -d

这将在你的机器上启动 NocoBase,默认端口为 13000。在浏览器中打开 http://localhost:13000。默认登录凭据为admin@nocobase.comadmin123

version: '3'

networks:
  nocobase:
    driver: bridge

services:
  app:
    image: nocobase/nocobase:beta
    networks:
      - nocobase
    depends_on:
      - postgres
    environment:
      # The application's secret key, used to generate user tokens, etc.
      # If APP_KEY is changed, old tokens will also become invalid.
      # It can be any random string, and make sure it is not exposed.
      - APP_KEY=your-secret-key
      # Database type, supports postgres, mysql, mariadb
      - DB_DIALECT=postgres
      # Database host, can be replaced with the IP of an existing database server
      - DB_HOST=postgres
      # Database name
      - DB_DATABASE=nocobase
      # Database user
      - DB_USER=nocobase
      # Database password
      - DB_PASSWORD=nocobase
      # Timezone
      - TZ=Asia/Shanghai
    volumes:
      - ./storage:/app/nocobase/storage
    ports:
      - '13000:80'
    # init: true

  # If using an existing database server, postgres service can be omitted
  postgres:
    image: postgres:16
    restart: always
    command: postgres -c wal_level=logical
    environment:
      POSTGRES_USER: nocobase
      POSTGRES_DB: nocobase
      POSTGRES_PASSWORD: nocobase
    volumes:
      - ./storage/db/postgres:/var/lib/postgresql/data
    networks:
      - nocobase

创建表格和数据

使用 Data Source Manager 插件,可以创建集合(表格)并定义字段。根据前文模型,可以轻松实现。更多插件参考见此处)。

Creating Tables and Data.png

Creating Tables and Data.png

创建菜单

通过单击屏幕右侧的铅笔图标,可以创建顶部和侧边菜单,如图所示。我们可以按照图中展示的示例进行配置。

Creating Menus.png

创建表单

创建表单(CRUD)也非常简单。NocoBase 使用块组件来创建表格、表单、详情页、列表、图表、卡片等。在选择块类型后,只需选择要链接到该块的集合(表格),链接到集合的组件(块)会自动生成。每个块都有其独立的自定义设置。

Creating Forms.png

创建图表

构建图表同样非常简单。只需添加一个名为“图表”的块,并选择希望用作数据源的集合(表格),如图所示。

Creating Charts.png

选定块后,可以配置图表属性。下图展示了图表的配置选项,用户可以设置指标、分组、过滤器、不同类型的图表以及标题等属性。用户可以探索所有配置选项,灵活调整图表展示效果。

Creating Charts.png

创建计划工作流

NocoBase 允许通过事件创建自动化工作流,以执行多种任务。三种触发器类型包括:集合事件计划事件后操作事件。利用这些触发器,可以在系统内创建各种操作,例如发送通知、将数据插入其他表格或向外部 API 发送请求。以下是一个在应用内发送通知的工作流示例。

Workflow.png

在我们的案例中,我们将创建一个工作流,在提醒日期当天发送通知。此工作流使用 计划事件,每天在指定时间运行,如下图所示。

Workflow.png

Workflow.png

除了配置计划时间,还需要设置工作流以查询 提醒 集合,提取当天的提醒,循环遍历每条提醒,并为每条提醒发送通知,如下图所示。整个过程非常简单,只需点击“+”按钮添加这些动作并进行配置即可。

Workflow.png

配置完成后,只需点击右上角的“开”按钮激活工作流。要查看执行结果,点击右上角的“…”按钮并选择 执行历史记录,如图所示。

Workflow.png

结论

通过上述案例研究,我们展示了 NocoBase 提供的丰富功能。它灵活适配不同规模和需求的应用开发,支持文件管理、国际化、移动端以及主题编辑功能。用户还可以开发自己的插件或购买市场中的商业插件。

推荐阅读: