代码生成与菜单
这一节两件事: **根据数据集或已保存 SQL 生成 TypeScript 调用片段 ,以及 把本地页面和线上菜单、CDN 资源对齐 **。都不替代你写业务逻辑,但能减少查文档和手写样板的时间。
按数据集操作生成 SDK 风格代码:codegen sdk
在已经 api pull、且知道要调哪个操作的前提下:
rabetbase codegen sdk --alias order --operation filter
用 dataset code 而不是别名也可以:
rabetbase codegen sdk --code --operation getOne
输出默认打在终端。想写入文件用重定向:
rabetbase codegen sdk --alias order --operation filter > ./src/api/order-filter.ts
不需要文件顶部的 import 时:
rabetbase codegen sdk --alias order --operation filter --skip-imports
若 dataset operations 里还看不清参数,先去 API 与数据集:拉配置、看清数据 把 --operation 配上。
按已保存 SQL 生成调用代码:codegen sql
rabetbase codegen sql --sqlcode xxxxxxxx-xxxxxxxx
生成目标可选 SDK 调用或**BFF 内调用 **(具体枚举以 help 为准):
rabetbase codegen sql --sqlcode xxxxxxxx-xxxxxxxx --target sdk
rabetbase codegen sql --sqlcode xxxxxxxx-xxxxxxxx --target bff
同样可重定向到文件。与 自定义 SQL:从写到执行 搭配使用:先 sql create 或 sql push,确认平台上已有最新 SQL,再执行 codegen sql。
菜单:把本地页面同步到平台 menu sync
你本地加了新页面、改了路由,希望控制台菜单与之一致时:
rabetbase menu sync
通常是交互式(勾选、确认)。若在 CI 或非交互环境,需按项目要求传 --yes 或 --params 等(见 rabetbase menu sync --help)。
菜单:更新线上 CDN 资源 menu update
批量更新线上菜单里引用的 CDN 资源 URL(例如换了静态资源地址):
rabetbase menu update
和 sync 解决的问题不同:sync 偏「页面结构对齐」,update 偏「资源地址批量替换」。menu update 会保留页面原有 extend 配置,不会因为更新 JS / CSS 资源顺手覆盖业务扩展字段。
非交互场景建议先 dry-run:
rabetbase menu update \
--params '{"jsUrl":"https://cdn.example.com/app.js","cssUrl":"https://cdn.example.com/app.css"}' \
--dry-run
确认后执行:
rabetbase menu update \
--params '{"jsUrl":"https://cdn.example.com/app.js","cssUrl":"https://cdn.example.com/app.css"}' \
--yes
资源更新模式:
| 模式 | 行为 | 适用场景 |
|---|---|---|
--mode replace | 按传入 JS / CSS 重写资源集合,默认模式 | 完整发布一组新资源 |
--mode patch | 只替换本次传入的资源类型,未传的类型保持不变 | 只替换 JS 或只替换 CSS |
replace 模式默认不会移除已有 JS 资源。如果本次确实要用传入资源替换掉旧 JS 集合,才显式加 --force:
rabetbase menu update \
--params '{"cssUrl":"https://cdn.example.com/app.css"}' \
--mode replace \
--force \
--yes
menu update 是 high-risk-write,非交互环境执行真实更新时必须带 --yes;能预览的场景先用 --dry-run。
小结
codegen sdk:数据集操作 → TS 片段。codegen sql:已保存 SQL → TS 片段。menu sync/menu update:菜单与资源维护。
CLI 自检、升级见 维护与排障。