跳转到内容

生成第一个模块

StackRivet 的代码生成器不只写 CRUD。它从单张数据库表生成一个带治理的模块:后端各层、前端页面、菜单、权限、OpenAPI 注解、测试骨架、模块 manifest 和 AI 可读模块上下文——全部遵守架构安全规则。

生成器内置在管理端与 API 中;你不需要运行一个单独的工具。

  • 后端和管理端已运行(见安装)。
  • 有一张可生成的数据库表。生成器从 MySQL 8.4 或 PostgreSQL 18.4 读取表。
选择表 → 导入元数据 → 配置字段 → 配置菜单与权限
→ 预览 → 确认 → 写入代码 + manifest → 跑测试 / 启动应用

选一张表导入其元数据。生成器读取列、类型、主键、索引和注释。

GET /api/v1/generator/database-tables # 浏览可用表
POST /api/v1/generator/tables/import # 导入选中的表

这会创建 sr_gen_tablesr_gen_column 配置行。重复导入同一张表会提示合并或覆盖。

对每一列,设置它在列表、表单、查询里的展示、校验、字典和控件类型。StackRivet 会按列类型给出合理默认值:

DB 类型Java控件
varchar / textStringinput / textarea
integer / bigintInteger / Longnumber input
decimalBigDecimal(金额绝不用 double)decimal input
boolean / tinyint(1)Booleanswitch
date / datetimeLocalDate / LocalDateTimedate / datetime picker
*_asset_idString资产上传控件(自动识别)
*_dictStringselect

idtenant_idcreated_atupdated_atdeleted 默认不进普通表单。任何被你标为查询条件的字段都会走索引风险检查——若没有索引覆盖,预览会标出。

生成器产出菜单项,外加模块的菜单、按钮、API 权限,因此它默认就是锁住的。(manifest 细节见新增权限。)

生成器总是先预览再写入。每个文件标为新建覆盖跳过——而且不会覆盖你改过的文件,除非你显式确认。

POST /api/v1/generator/tables/{id}/preview # 查看文件 diff
POST /api/v1/generator/tables/{id}/apply # 确认后写入
范围文件
后端{Name}Entity{Name}Mapper{Name}Service + Impl{Name}Controller、Create/Update/Query DTO、Response VO
前端{resource}.api.ts、列表页、表单 dialog/drawer
治理菜单 + 按钮 + API 权限 seed、OpenAPI 注解、基础测试、模块 manifest、AI 可读模块上下文

生成的后端可编译,Controller 从不直接调 Mapper,DTO/VO 不复用实体,列表 API 分页(最大 pageSize 200),生成文件会带模板元数据和文件 hash,供升级路径使用。

  1. 跑生成的测试并启动应用。
  2. 在管理端打开模块,做一遍增删改查。
  3. 继续定制——AI 工具可读取模块上下文来安全扩展它(见 AI 编码工作流)。

Community 生成单表模块。主子表、树表、多对多生成、模板编辑和生成 diff 预览属于 Pro / Enterprise——见价格页