跳到主要内容

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

本文定位

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

Rabetbase 五件套

五件套概览

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

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

lovrabet auth # 登录认证
lovrabet create # 创建项目
lovrabet start # 启动开发服务器
lovrabet api pull # 拉取数据集配置,生成 SDK 代码
lovrabet menu sync # 同步菜单到工作台
lovrabet 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 生态无缝集成。


MCP:让 AI 理解你的业务

为什么 MCP 值得配置?

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

在 Claude Desktop 或 Cursor 中配置:

{
"mcpServers": {
"lovrabet-dataset": {
"command": "npx",
"args": ["-y", "@lovrabet/dataset-mcp-server"],
"env": {
"LOVRABET_APP_CODE": "your-app-code"
}
}
}
}

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

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

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

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

实际效果对比:

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

五件套的协同流程

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

开发前
1. lovrabet create → 创建项目
2. lovrabet api pull → 生成 SDK 配置
3. 配置 MCP → 让 AI 理解你的数据

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

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

实战演示:用户列表页

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

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

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


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

下面通过一个完整的订单管理场景,演示如何组合使用所有工具。

场景需求

开发一个订单管理页面,需要:

  1. 显示订单列表,支持按状态筛选
  2. 点击订单查看详情
  3. 支持导出 Excel
  4. 复杂报表需求:按客户统计月度销售额

开发流程

第一步:环境准备(CLI)

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

# 2. 创建项目
lovrabet create order-management

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

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

在 Cursor 中配置 MCP:

{
"mcpServers": {
"lovrabet-dataset": {
"command": "npx",
"args": ["-y", "@lovrabet/dataset-mcp-server"],
"env": {
"LOVRABET_APP_CODE": "your-app-code"
}
}
}
}

第三步:与 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)

# 构建
lovrabet build

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

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

工具使用总结

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

下一步