跳到主要内容

开发工具:CLI、SDK、MCP 介绍

本文定位

了解 Rabetbase 提供的五大核心工具,以及它们如何协同工作。

Rabetbase 五件套

五件套概览

Rabetbase 为开发者提供了一套完整的工具链,覆盖从接口调用到 AI 辅助开发的完整场景:

工具一句话定位核心价值
OpenAPI标准 HTTP 接口跨语言调用、第三方系统集成、无 SDK 依赖
CLI项目生命周期管理创建项目、生成配置、同步菜单、构建部署
TypeScript SDK前端数据访问类型安全、统一错误处理、高效查询
Java SDK后端数据访问服务端复杂业务逻辑开发
SkillAI 业务智能引擎让 AI 理解你的业务数据,生成准确代码

下面逐一介绍它们各自解决什么问题。


OpenAPI:标准 HTTP 接口

如果你不想依赖任何 SDK,或者需要用 Python、Go、PHP 等语言调用,OpenAPI 是最直接的选择。

curl -X POST https://runtime.lovrabet.com/openapi/data/get-list \
-H "Content-Type: application/json" \
-H "X-Time-Stamp: 1758903130713" \
-H "X-App-Code: your-app-code" \
-H "X-Dataset-Code: your-dataset-code" \
-H "X-Token: your-signed-token" \
-d '{"appCode": "your-app-code", "datasetCode": "your-dataset-code", "paramMap": {"pageSize": 10}}'

OpenAPI 使用签名认证(X-Header 方式),支持 AccessKey 和预生成 Token 两种模式,任何能发 HTTP 请求的语言都能用。详细的认证说明请参考 OpenAPI 认证指南


CLI:项目生命周期管理

CLI 帮你省掉项目搭建中的各种琐事。

npm install -g @lovrabet/rabetbase-cli@latest

rabetbase auth login # 登录认证
rabetbase project create # 创建项目
rabetbase run start # 启动开发服务器
rabetbase api pull # 拉取数据集配置,生成 SDK 代码
rabetbase menu sync # 同步菜单到工作台
rabetbase run build # 构建生产版本

不用从零配置项目结构,不用手写类型定义,不用登录后台手动添加菜单,不用操心跨域问题——CLI 都替你处理了。


TypeScript SDK:前端数据访问

SDK 提供了类型安全的 API,IDE 自动提示字段和类型,错误处理也是统一的。

import { lovrabetClient } from "@/api/client";

// 列表查询(带筛选、分页)
const result = await lovrabetClient.models.customers.filter({
where: { status: { $eq: "active" } },
select: ["id", "name", "phone"],
orderBy: [{ createTime: "desc" }],
pageSize: 20,
});

// 单条查询
const customer = await lovrabetClient.models.customers.getOne(customerId);

// 创建数据
await lovrabetClient.models.customers.create({
name: "张三",
phone: "13800138000",
});

// 自定义 SQL(复杂报表场景)
const stats = await lovrabetClient.api.executeSql("sql-code-xxx", {
startDate: "2024-01-01",
endDate: "2024-12-31",
});

浏览器端自动使用 Cookie 认证,内置分页、筛选、排序支持。


Java SDK:后端数据访问

如果你有 Java 后端服务,需要在服务端处理复杂业务逻辑(批量操作、事务管理、定时任务等),可以使用 Java SDK。

LovrabetClient client = new LovrabetClient(accessKey, secretKey);

// 列表查询
FilterResult<Customer> result = client.models("customers")
.filter(new FilterParams()
.where("status", "active")
.select("id", "name", "phone")
.orderBy("createTime", "desc")
.pageSize(20));

// 单条查询
Customer customer = client.models("customers").getOne(customerId);

// 创建数据
client.models("customers").create(new Customer("张三", "13800138000"));

密钥放在服务端,不会暴露给前端,与现有 Java 生态无缝集成。


Rabetbase Skill:让 AI 理解你的业务

为什么值得安装 Skill?

传统 AI 只能"看文档",知道字段名但不理解业务关系。Rabetbase Skill 让 AI "理解业务"——表之间的关联、字段的含义、数据的流转,它都能看到。

在 Cursor 或 Claude Code 中安装:

npx skills add lovrabet/rabetbase --global

安装好之后,你可以直接在 AI 对话中探索数据:

你:列出所有数据集
AI:(调用 rabetbase dataset list)你的应用有 8 个数据集...

你:查看 customer 表的字段
AI:(调用 rabetbase dataset detail)customer 表有以下字段:id、name、phone...

你:帮我写一个客户列表页面
AI:(通过 Skill 理解数据结构后)好的,我来生成代码...

实际效果对比:

场景不用 Skill用 Skill
数据探索20-30 分钟(查文档、试接口)几秒钟
SQL 设计30-60 分钟(反复调试)1-2 分钟
代码生成准确度60-70%(需多轮迭代)95%+(基本一次通过)
完整页面开发2-3 小时10-15 分钟

五件套的协同流程

实际开发中,这五个工具是这样配合使用的:

开发前
1. rabetbase project create → 创建项目
2. rabetbase api pull → 生成 SDK 配置
3. 安装 Rabetbase Skill → 让 AI 理解你的数据

开发中
4. AI + Skill → 探索数据、生成代码
5. SDK 调用 → 类型安全的数据操作
6. rabetbase run start → 实时预览调试

开发后
7. rabetbase run build → 构建生产版本
8. rabetbase menu sync → 同步菜单到工作台

实战演示:用户列表页

假设你要做一个用户列表页——显示基础信息 + 会员标签 + 最近登录时间,需要关联 3 张表。

传统方式:查文档找字段名(猜错了再查)→ 写 SQL(JOIN 方式不对再改)→ 写代码(字段名拼错再调)→ 反复 4-5 轮,耗时 2-3 小时。

用 Skill:告诉 AI"我要做一个用户列表页,显示基础信息、会员标签、最近登录时间",AI 通过 Skill 分析出表结构和关联关系,直接生成完整代码,字段名全部正确,10 分钟搞定。


端到端示例:订单管理系统

下面通过一个订单管理场景,演示如何用 AI + rabetbase CLI 快速完成开发。

为什么 AI 能端到端搞定订单管理系统?

没有 rabetbase,做一个订单管理系统 = 做一个完整的全栈项目。前端 3 个页面(列表、详情、统计),后端至少 5 个接口(订单列表、订单详情、订单更新、月度统计 SQL、商品统计 SQL),加上认证、CORS、错误处理、部署。AI 确实生成了前端代码——但数据全是 mock 的,因为后端接口还没写。你给了 API 文档,AI 写了 fetch 调用——字段名全对不上(customer_name 不是 name)。改完字段名,认证又不对(文档要 X-Access-Key,AI 传了 Authorization: Bearer)。改完认证,返回数据结构又不对({ items: [], total: 0 } 不是 { tableData: [], totalCount: 0 })。列表页还没跑通,统计 SQL 更别提了——四张表关联, JOIN 条件猜错了 3 次,金额存的是分不是元。前后端加起来 2 周,只有一个列表页勉强能用。

有了 rabetbase:不用搭后端、不用写接口、不用联调。数据库逆向引擎已分析出完整数据模型和关联关系。CLI 从 project createmenu sync 覆盖完整链路。Skill 指导 AI 用 SDK 写类型安全的业务代码。10-15 分钟,每个页面都能跑通。

你只需告诉 AI

在 Claude Code 中输入:

用 rabetbase CLI 帮我开发一个订单管理系统。创建项目、拉取 API 配置,然后生成:1) 订单列表页(按状态筛选);2) 订单详情页(支持编辑);3) 按客户统计月度销售额的自定义 SQL。最后构建并同步菜单。

AI 会做什么

AI 会使用 rabetbase CLI 和 SDK 自动完成以下工作:

  1. 安装 CLI 并登录(rabetbase auth login
  2. 创建项目(rabetbase project create
  3. 拉取 API 配置(rabetbase api pull
  4. 生成订单列表页(filter + 状态筛选)
  5. 生成订单详情页(getOne + update)
  6. 创建自定义 SQL(rabetbase sql save
  7. 构建部署(rabetbase run build
  8. 同步菜单(rabetbase menu sync

整个过程从传统的 2-3 小时缩短到 10-15 分钟。


🔧 手动操作(完整步骤)

第一步:环境准备(CLI)

# 1. 安装并登录
npm install -g @lovrabet/rabetbase-cli@latest
rabetbase auth login

# 2. 创建项目
rabetbase project create order-management

# 3. 生成 SDK 配置
cd order-management
rabetbase api pull --appcode your-app-code

第二步:配置 AI 辅助(Skill)

安装 Rabetbase Skill,让 AI 助手理解你的业务数据:

npx skills add lovrabet/rabetbase --global

第三步:与 AI 协作开发

对话示例:

你:帮我查看有哪些数据集?

AI:(调用 list_datasets)你的应用有以下数据集:
- orders(订单表)
- customers(客户表)
- products(产品表)
- order_items(订单明细表)

你:查看 orders 表的字段结构

AI:(调用 get_dataset_detail)orders 表有以下字段:
- id: 订单ID(主键)
- customer_id: 客户ID(关联客户表)
- order_date: 下单时间
- status: 订单状态(枚举:pending/paid/shipped/completed)
- total_amount: 订单金额
...

你:帮我生成订单列表页面的代码,支持按状态筛选

AI:(调用 generate_sdk_code)好的,我来生成代码...

第四步:实现复杂报表(SQL + SDK)

对于"按客户统计月度销售额"这类复杂报表,使用自定义 SQL:

// 1. 先让 AI 帮你设计 SQL
// 你:帮我写一个 SQL,按客户统计月度销售额

// 2. AI 生成 SQL 后,保存到平台
// 你:保存这个 SQL,名称叫"客户月度销售统计"

// 3. 在代码中调用
const monthlyStats = await client.sql.execute({
sqlCode: 'customer-monthly-stats',
params: { year: 2024, month: 1 }
});

if (monthlyStats.execSuccess) {
console.log('统计数据:', monthlyStats.execResult);
}

第五步:构建部署(CLI)

# 构建
rabetbase run build

# 部署到 CDN(示例使用阿里云 OSS)
ossutil cp -r dist/ oss://your-bucket/order-management/

# 同步菜单到工作台
rabetbase menu sync

工具使用总结

需求使用的工具说明
项目搭建CLIrabetbase project create + api pull
理解数据结构Skill让 AI 自动获取表结构
生成代码Skill + SDKAI 生成 SDK 调用代码
基础 CRUDSDKfilter() / getOne() / create()
复杂查询SQL + SDK自定义 SQL + sql.execute()
导出功能SDKexcelExport() 方法
部署上线CLIbuild + menu sync

下一步