Quick Start
Lovrabet SDK is a lightweight JavaScript/TypeScript SDK that allows you to quickly integrate with Lovrabet platform's data services.
Using Lovrabet CLI can generate configuration with one click, saving you the trouble of manual configuration. Please refer to CLI 5-Minute Quick Start.
Installation
Install the SDK using npm or yarn:
npm install @lovrabet/sdk
# or
yarn add @lovrabet/sdk
⚡ 5-Minute Quick Start
1. CLI Auto Configuration (Recommended)
Use CLI to generate configuration with one click, then use directly:
import { createClient } from "@lovrabet/sdk";
import "./api/api"; // Import CLI-generated configuration
const client = createClient();
// Standard access method (recommended) - use dataset_ prefix + datasetCode
const users = await client.models.dataset_71494bcba13f4ec7858abe90794183ad.filter({
currentPage: 1,
pageSize: 20,
});
// Alias access method (syntactic sugar) - use configured alias
const users = await client.models.users.filter({
currentPage: 1,
pageSize: 20,
});
💡 Standard Method vs Alias Method: Both are functionally identical. The standard method uses datasetCode, globally unique, AI-friendly; the alias method is more readable, it's syntactic sugar.
2. Manual Configuration Method
import { registerModels, createClient } from "@lovrabet/sdk";
// Register configuration
registerModels({
appCode: "your-app-code",
models: [
{
datasetCode: "8d2dcbae08b54bdd84c00be558ed48df",
tableName: "users",
alias: "users", // Optional: model alias
name: "User Table", // Optional: UI display name
},
{
datasetCode: "a1b2c3d4e5f6789012345678abcdef12",
tableName: "posts",
alias: "posts",
},
],
});
const client = createClient();
// Standard access method (recommended)
const users = await client.models.dataset_8d2dcbae08b54bdd84c00be558ed48df.filter();
// Alias access method (syntactic sugar)
const users = await client.models.users.filter();
📊 Response Data Structure
List Query Response
const response = await client.models.dataset_8d2dcbae08b54bdd84c00be558ed48df.filter();
console.log(response.tableData); // Data list
console.log(response.total); // Total count
console.log(response.currentPage); // Current page
console.log(response.pageSize); // Page size
Single Record Response
const user = await client.models.dataset_8d2dcbae08b54bdd84c00be558ed48df.getOne("user-id");
console.log(user); // User detail object
🛠️ CLI Auto-Generated Configuration
If you use the Lovrabet CLI tool, the configuration file will be automatically generated:
src/api/api.ts (Auto-generated by CLI)
import { registerModels, type ModelsConfig } from "@lovrabet/sdk";
export const LOVRABET_MODELS_CONFIG: ModelsConfig = {
appCode: "app-c4c89304",
models: [
{
datasetCode: "71494bcba13f4ec7858abe90794183ad",
tableName: "users",
alias: "users",
name: "User Management",
},
{
datasetCode: "d26ed512e878461ca97d287a47606fd3",
tableName: "posts",
alias: "posts",
name: "Article Management",
},
],
} as const;
// Auto-register default configuration
registerModels(LOVRABET_MODELS_CONFIG);
src/api/client.ts (Business code)
import { createClient } from "@lovrabet/sdk";
import "./api"; // Import configuration file to execute registration
// Create client instance
export const lovrabetClient = createClient();
// Use in components
// import { lovrabetClient } from '@/api/client';
// Standard method: lovrabetClient.models.dataset_71494bcba13f4ec7858abe90794183ad.filter()
// Alias method: lovrabetClient.models.users.filter()
🛠️ Basic CRUD Operations
// Query list (with pagination and conditional filtering)
const users = await client.models.dataset_8d2dcbae08b54bdd84c00be558ed48df.filter({
where: { status: { $eq: "active" } },
currentPage: 1,
pageSize: 10,
});
// Get single record
const user = await client.models.dataset_8d2dcbae08b54bdd84c00be558ed48df.getOne("user-id");
// Create new record
const newUser = await client.models.dataset_8d2dcbae08b54bdd84c00be558ed48df.create({
name: "Jane Doe",
email: "jane@example.com",
status: "active",
});
// Update record
const updatedUser = await client.models.dataset_8d2dcbae08b54bdd84c00be558ed48df.update("user-id", {
name: "Jane Smith",
email: "jane.smith@example.com",
});
// Delete record
await client.models.dataset_8d2dcbae08b54bdd84c00be558ed48df.delete("user-id");
💡 The above examples use the standard method
dataset_xxx, but you can also use the alias methodclient.models.users.xxx().
🆕 v1.2.0 New Features
Model Access Methods
v1.2.0 supports standard and alias methods to access models:
// Standard method (recommended) - use dataset_ prefix + datasetCode
// Globally unique, convenient for AI tools to generate code
const users = await client.models.dataset_8d2dcbae08b54bdd84c00be558ed48df.filter();
// Alias method (syntactic sugar) - use configured alias
// Convenient for human reading, functionally identical to standard method
const users = await client.models.users.filter();
💡 Alias is just a pointer, internally still uses datasetCode for access, all features are exactly the same as the standard method.
Model Manager Enhancements
// Get all model detailed information
const details = client.getModelListDetails();
// Returns: [{ datasetCode: '8d2dcbae08b54bdd84c00be558ed48df', alias: 'users', name: 'User Table' }, ...]
// Dynamically add model
client.addModel({
datasetCode: 'f7e6d5c4b3a2901234567890fedcba98',
tableName: 'products',
alias: 'products'
});
📖 Next Steps
Congratulations! You've mastered the basics of Lovrabet SDK. Next, you can dive deeper:
- 📋 Configuration Details - Learn about various configuration methods
- 🔐 Authentication Configuration - Configure user authentication
- 📊 API Usage Guide - Deep dive into API operations
- 🎯 TypeScript Support - Type-safe development experience
❓ Having Issues?
If you encounter problems during use, you can check:
- 🛠️ Troubleshooting - Common questions and answers
- 📞 Technical Support - Contact Lovrabet technical team