自动生成 SDK 配置
本文定位
本文介绍如何使用 CLI 的 api pull 命令自动生成 SDK 配置文件,省去手动配置的麻烦。
如果你想了解 SDK 配置的完整说明(手动配置、多环境配置等),请参阅 SDK 配置指南。
先理解一个背景
当你在 Lovrabet 工作台连接数据库后,系统会自动为每张数据表生成一个数据集(Dataset)。
每个数据集都有:
- 一个唯一的
datasetCode(如8d2dcbae08b54bdd84c00be558ed48df) - 对应的数据表名(如
orders) - 自动生成的 CRUD API
┌─────────────────────────────────────────────────────────┐
│ Lovrabet 工作台 │
├─────────────────────────────────────────────────────────┤
│ 连接数据库 │
│ ↓ │
│ 自动分析表结构 │
│ ↓ │
│ 为每张表生成数据集(Dataset) │
│ ↓ │
│ 每个数据集自动拥有 API(增删改查) │
└─────────────────────────────────────────────────────────┘
SDK 需要什么配置?
要在前端项目中使用 Lovrabet SDK,你需要告诉 SDK "我要访问哪些数据集":
import { registerModels, createClient } from '@lovrabet/sdk';
// 这段配置告诉 SDK:我的应用有哪些数据集
registerModels({
appCode: 'your-app-code',
models: [
{ datasetCode: '8d2dcbae08b54bdd84c00be558ed48df', tableName: 'orders', alias: 'orders' },
{ datasetCode: 'a1b2c3d4e5f6789012345678abcdef12', tableName: 'customers', alias: 'customers' },
{ datasetCode: 'f9e8d7c6b5a4321098765432fedcba98', tableName: 'products', alias: 'products' },
// ... 可能有几十个数据集
],
});
const client = createClient();
问题来了:这些 datasetCode 从哪来?手动一个个复制粘贴?
CLI 自动生成这些配置
lovrabet api pull 命令就是解决这个问题的:
lovrabet api pull
它会:
- 连接 Lovrabet 后端
- 获取你应用下的所有数据集信息
- 自动生成 SDK 需要的配置文件
┌─────────────────────────────────────────────────────────┐
│ lovrabet api pull │
├─────────────────────────────────────────────────────────┤
│ 1. 读取你的 appCode │
│ 2. 从 Lovrabet 后端获取所有数据集 │
│ 3. 生成 src/api/api.ts(配置文件) │
│ 4. 生成 src/api/client.ts(可直接使用的客户端) │
└─────────────────────────────────────────────────────────┘
使用方式
第一步:确保已登录(已登录可跳过)
lovrabet auth
第二步:设置应用代码(已配置可跳过)
lovrabet config set app your-app-code
或者直接在命令中指定:
lovrabet api pull --appcode your-app-code
第三步:拉取配置
lovrabet api pull
执行后会生成两个文件:
src/api/api.ts - 包含所有数据集的配置:
import { registerModels, type ModelsConfig } from "@lovrabet/sdk";
export const LOVRABET_MODELS_CONFIG: ModelsConfig = {
appCode: "your-app-code",
models: [
{ datasetCode: "8d2dcbae08b54bdd84c00be558ed48df", tableName: "orders", alias: "orders" },
{ datasetCode: "a1b2c3d4e5f6789012345678abcdef12", tableName: "customers", alias: "customers" },
// ... 自动生成的所有数据集
],
};
registerModels(LOVRABET_MODELS_CONFIG);
src/api/client.ts - 封装好的客户端:
import { createClient } from "@lovrabet/sdk";
import "./api"; // 自动注册配置
export const lovrabetClient = createClient();
第四步:在项目中使用
import { lovrabetClient } from "@/api/client";
// 直接使用,所有配置已经自动完成
const orders = await lovrabetClient.models.orders.filter();
const customers = await lovrabetClient.models.customers.filter();
什么时候需要重新拉取?
当 Lovrabet 工作台有变化时:
- 新增了数据表(新的数据集)
- 删除了数据表
- 数据集配置有变更
只需重新执行:
lovrabet api pull
自定义输出目录
默认生成到 ./src/api/,可以自定义:
lovrabet api pull --output ./lib/api
命名规则
生成的模型别名采用 camelCase 命名:
| 数据表名 | 生成的别名 |
|---|---|
order_items | orderItems |
user_profile | userProfile |
sales_records | salesRecords |
附:生成 API 文档
除了生成 SDK 配置,CLI 还可以生成 API 使用文档:
lovrabet api doc
生成 Markdown 格式的文档,包含字段定义、请求示例等,方便团队共享。
# 只生成指定数据集的文档
lovrabet api doc --datasetcode orders,customers
# 自定义输出目录
lovrabet api doc --output ./docs/api
常见问题
提示"请先配置应用 Code"
# 设置配置
lovrabet config set app your-app-code
# 或直接传参
lovrabet api pull --appcode your-app-code
API 拉取失败
- 检查登录状态:
lovrabet auth - 确认应用代码正确:
lovrabet config get app - 检查网络连接
生成的代码有编译错误
后端数据结构可能有变化,重新拉取:
lovrabet api pull