API reference
This document is the complete reference for every interface in the Lovrabet Java OpenSDK.
Contents
- Dataset management
- 1.1 Get the dataset code list
- Data queries
- 2.1 Get a single record
- 2.2 Query records with pagination
- Data operations
- 3.1 Create a record
- 3.2 Update a record
1. Dataset management
1.1 Get the dataset code list
Returns the codes of all datasets under a given app.
Method signature
public LovrabetResult<?> getDatasetCodeList(LovrabetRequest request)Request parameters
| Field | Type | Required | Description |
|---|---|---|---|
| appCode | String | Yes | App code |
Return value
Type: LovrabetResult<List<String>>
Returned data: a list of dataset code strings
Complete example
import com.lovrabet.runtime.opensdk.client.LovrabetSDKClient;
import com.lovrabet.runtime.opensdk.model.LovrabetRequest;
import com.lovrabet.runtime.opensdk.model.LovrabetResult;
import java.util.List;
public class GetDatasetListExample {
public static void main(String[] args) {
// 创建客户端
LovrabetSDKClient sdkClient = new LovrabetSDKClient(
"ak-OD8xWhMOsL5ChQ3Akhv4uYYiu1fPOFQGVF9BULIeov8",
"https://runtime.lovrabet.com/openapi"
);
// 构建请求
LovrabetRequest request = new LovrabetRequest();
request.setAppCode("app-c2dd52a2");
// 调用接口
LovrabetResult<?> result = sdkClient.getDatasetCodeList(request);
// 处理结果
if (result.isSuccess()) {
List<String> datasetList = (List<String>) result.getData();
System.out.println("数据集数量: " + datasetList.size());
System.out.println("数据集列表: " + datasetList);
} else {
System.err.println("获取失败: " + result.getResultMsg());
}
}
}Error cases
| Error case | Result | Suggested handling |
|---|---|---|
| appCode is empty | Throws IllegalArgumentException | Make sure appCode is not empty |
| appCode does not exist | success=false | Check that appCode is correct |
| Network error | success=false | Retry the request |
2. Data queries
2.1 Get a single record
Fetches a single record from a dataset by primary key ID.
Method signature
public LovrabetResult<?> getOne(LovrabetRequest request)Request parameters
| Field | Type | Required | Description |
|---|---|---|---|
| appCode | String | Yes | App code |
| modelCode | String | Yes | Dataset code |
| id | Long | Yes | Primary key ID of the record |
Return value
Type: LovrabetResult<Map<String, Object>>
Returned data: a Map containing all fields
Complete example
import com.lovrabet.runtime.opensdk.client.LovrabetSDKClient;
import com.lovrabet.runtime.opensdk.model.LovrabetRequest;
import com.lovrabet.runtime.opensdk.model.LovrabetResult;
import java.util.Map;
public class GetOneExample {
public static void main(String[] args) {
// 创建客户端
LovrabetSDKClient sdkClient = new LovrabetSDKClient(
"ak-OD8xWhMOsL5ChQ3Akhv4uYYiu1fPOFQGVF9BULIeov8",
"https://runtime.lovrabet.com/openapi"
);
// 构建请求
LovrabetRequest request = new LovrabetRequest();
request.setAppCode("app-c2dd52a2");
request.setModelCode("32c036010c504757b80d438e3c0ec8b7");
request.setId(513L);
// 调用接口
LovrabetResult<?> result = sdkClient.getOne(request);
// 处理结果
if (result.isSuccess()) {
Map<String, Object> data = (Map<String, Object>) result.getData();
System.out.println("数据内容: " + data);
// 访问具体字段
System.out.println("ID: " + data.get("id"));
System.out.println("TEXT_1: " + data.get("TEXT_1"));
System.out.println("NUMBER_3: " + data.get("NUMBER_3"));
} else {
System.err.println("获取失败: " + result.getResultMsg());
}
}
}Error cases
| Error case | Result | Suggested handling |
|---|---|---|
| Required parameter is empty | Throws IllegalArgumentException | Check all required parameters |
| ID not found | success=false | Check that the ID is correct |
| Wrong modelCode | success=false | Check the dataset code |
2.2 Query records with pagination
Fetches records from a dataset page by page.
Method signature
public LovrabetResult<?> getList(LovrabetRequest request)Request parameters
| Field | Type | Required | Description |
|---|---|---|---|
| appCode | String | Yes | App code |
| modelCode | String | Yes | Dataset code |
| paramMap | Map | No | Pagination parameters and query conditions |
Supported paramMap parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| currentPage | Integer | No | 1 | Page number, starting from 1 |
| pageSize | Integer | No | 20 | Number of records per page |
Return value
Type: LovrabetResult<List<Map<String, Object>>>
Returned data: a list of records, each as a Map
Basic example
import com.lovrabet.runtime.opensdk.client.LovrabetSDKClient;
import com.lovrabet.runtime.opensdk.model.LovrabetRequest;
import com.lovrabet.runtime.opensdk.model.LovrabetResult;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class GetListExample {
public static void main(String[] args) {
// 创建客户端
LovrabetSDKClient sdkClient = new LovrabetSDKClient(
"ak-OD8xWhMOsL5ChQ3Akhv4uYYiu1fPOFQGVF9BULIeov8",
"https://runtime.lovrabet.com/openapi"
);
// 构建请求
LovrabetRequest request = new LovrabetRequest();
request.setAppCode("app-c2dd52a2");
request.setModelCode("b460abdbb0fb49e1865110d9dfbbc9b4");
// 设置分页参数
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("pageSize", 10); // 每页 10 条
paramMap.put("currentPage", 1); // 第 1 页
request.setParamMap(paramMap);
// 调用接口
LovrabetResult<?> result = sdkClient.getList(request);
// 处理结果
if (result.isSuccess()) {
List<Map<String, Object>> dataList = (List<Map<String, Object>>) result.getData();
System.out.println("本页数据量: " + dataList.size());
// 遍历数据
for (Map<String, Object> record : dataList) {
System.out.println("记录: " + record);
}
} else {
System.err.println("获取失败: " + result.getResultMsg());
}
}
}Advanced example: paginating through all records
public class PaginationExample {
public static void main(String[] args) {
LovrabetSDKClient sdkClient = new LovrabetSDKClient(
"ak-OD8xWhMOsL5ChQ3Akhv4uYYiu1fPOFQGVF9BULIeov8",
"https://runtime.lovrabet.com/openapi"
);
int currentPage = 1;
int pageSize = 20;
boolean hasMore = true;
while (hasMore) {
// 构建分页请求
LovrabetRequest request = new LovrabetRequest();
request.setAppCode("app-c2dd52a2");
request.setModelCode("b460abdbb0fb49e1865110d9dfbbc9b4");
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("pageSize", pageSize);
paramMap.put("currentPage", currentPage);
request.setParamMap(paramMap);
// 查询数据
LovrabetResult<?> result = sdkClient.getList(request);
if (result.isSuccess()) {
List<Map<String, Object>> dataList =
(List<Map<String, Object>>) result.getData();
if (dataList.isEmpty()) {
hasMore = false; // 没有更多数据
} else {
// 处理当前页数据
System.out.println("第 " + currentPage + " 页,数据量: " + dataList.size());
for (Map<String, Object> record : dataList) {
// 处理每条记录
processRecord(record);
}
// 判断是否还有下一页
if (dataList.size() < pageSize) {
hasMore = false;
} else {
currentPage++;
}
}
} else {
System.err.println("查询失败: " + result.getResultMsg());
break;
}
}
}
private static void processRecord(Map<String, Object> record) {
// 处理单条记录的业务逻辑
System.out.println(record);
}
}Error cases
| Error case | Result | Suggested handling |
|---|---|---|
| Page number out of range | Returns an empty list | Normal — stop paginating |
| pageSize too large | May hurt performance | Keep it at 100 or below |
| Empty dataset | Returns an empty list | Normal |
3. Data operations
3.1 Create a record
Creates a new record in a dataset.
Method signature
public LovrabetResult<String> create(LovrabetRequest request)Request parameters
| Field | Type | Required | Description |
|---|---|---|---|
| appCode | String | Yes | App code |
| modelCode | String | Yes | Dataset code |
| paramMap | Map | Yes | Fields for the new record |
paramMap field notes:
- Field names must match the field codes defined in the dataset
- Field values must match the field types defined in the dataset
- Required fields must be provided, or the creation fails
- Null values are filtered out automatically
Return value
Type: LovrabetResult<String>
Returned data: the new record's ID (as a string)
Complete example
import com.lovrabet.runtime.opensdk.client.LovrabetSDKClient;
import com.lovrabet.runtime.opensdk.model.LovrabetRequest;
import com.lovrabet.runtime.opensdk.model.LovrabetResult;
import java.util.HashMap;
import java.util.Map;
public class CreateExample {
public static void main(String[] args) {
// 创建客户端
LovrabetSDKClient sdkClient = new LovrabetSDKClient(
"ak-OD8xWhMOsL5ChQ3Akhv4uYYiu1fPOFQGVF9BULIeov8",
"https://runtime.lovrabet.com/openapi"
);
// 构建请求
LovrabetRequest request = new LovrabetRequest();
request.setAppCode("app-c2dd52a2");
request.setModelCode("32c036010c504757b80d438e3c0ec8b7");
// 设置业务数据
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("TEXT_1", "销售订单1010"); // 文本字段
paramMap.put("NUMBER_3", 121); // 数字字段
paramMap.put("NUMBER_8", 888); // 数字字段
paramMap.put("SELECT_4", "china-north"); // 选择字段
paramMap.put("SELECT_7", 463); // 选择字段
request.setParamMap(paramMap);
// 调用接口
LovrabetResult<String> result = sdkClient.create(request);
// 处理结果
if (result.isSuccess()) {
String newId = result.getData();
System.out.println("创建成功,新记录 ID: " + newId);
} else {
System.err.println("创建失败: " + result.getResultMsg());
}
}
}Field type examples
Map<String, Object> paramMap = new HashMap<>();
// 文本类型
paramMap.put("TEXT_1", "这是文本内容");
// 数字类型(整数)
paramMap.put("NUMBER_1", 100);
// 数字类型(小数)
paramMap.put("NUMBER_2", 99.99);
// 日期时间类型(时间戳,毫秒)
paramMap.put("DATETIME_1", System.currentTimeMillis());
// 日期时间类型(字符串格式)
paramMap.put("DATETIME_2", "2025-10-11 12:00:00");
// 布尔类型
paramMap.put("BOOLEAN_1", true);
// 选择字段(字符串)
paramMap.put("SELECT_1", "option-value");
// 选择字段(数字)
paramMap.put("SELECT_2", 123);
// 多选字段(列表)
paramMap.put("MULTI_SELECT_1", Arrays.asList("value1", "value2"));Error cases
| Error case | Result | Suggested handling |
|---|---|---|
| Missing required fields | success=false | Make sure all required fields are provided |
| Field type mismatch | success=false | Check the field value types |
| Wrong field name | The record may still be created, but the unknown field is ignored | Check that field names match the dataset definition |
3.2 Update a record
Updates a single record in a dataset.
Method signature
public LovrabetResult<String> update(LovrabetRequest request)Request parameters
| Field | Type | Required | Description |
|---|---|---|---|
| appCode | String | Yes | App code |
| modelCode | String | Yes | Dataset code |
| id | Long | Yes | ID of the record to update |
| paramMap | Map | Yes | Fields to update |
paramMap field notes:
- Include only the fields you want to update — no need to pass every field
- Field names must match the field codes defined in the dataset
- Field values must match the field types defined in the dataset
Return value
Type: LovrabetResult<String>
Returned data: a result message for the update
Complete example
import com.lovrabet.runtime.opensdk.client.LovrabetSDKClient;
import com.lovrabet.runtime.opensdk.model.LovrabetRequest;
import com.lovrabet.runtime.opensdk.model.LovrabetResult;
import java.util.HashMap;
import java.util.Map;
public class UpdateExample {
public static void main(String[] args) {
// 创建客户端
LovrabetSDKClient sdkClient = new LovrabetSDKClient(
"ak-OD8xWhMOsL5ChQ3Akhv4uYYiu1fPOFQGVF9BULIeov8",
"https://runtime.lovrabet.com/openapi"
);
// 构建请求
LovrabetRequest request = new LovrabetRequest();
request.setAppCode("app-c2dd52a2");
request.setModelCode("32c036010c504757b80d438e3c0ec8b7");
request.setId(513L); // 要更新的记录 ID
// 设置要更新的字段(只需要包含要修改的字段)
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("TEXT_1", "销售订单1011"); // 更新文本字段
paramMap.put("NUMBER_3", 121); // 更新数字字段
request.setParamMap(paramMap);
// 调用接口
LovrabetResult<String> result = sdkClient.update(request);
// 处理结果
if (result.isSuccess()) {
System.out.println("更新成功: " + result.getData());
} else {
System.err.println("更新失败: " + result.getResultMsg());
}
}
}Partial update example
// 只更新单个字段
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("TEXT_1", "新的文本内容");
request.setParamMap(paramMap);
LovrabetResult<String> result = sdkClient.update(request);Batch update example
public class BatchUpdateExample {
public static void main(String[] args) {
LovrabetSDKClient sdkClient = new LovrabetSDKClient(
"ak-OD8xWhMOsL5ChQ3Akhv4uYYiu1fPOFQGVF9BULIeov8",
"https://runtime.lovrabet.com/openapi"
);
// 要更新的记录 ID 列表
List<Long> idList = Arrays.asList(513L, 514L, 515L);
for (Long id : idList) {
LovrabetRequest request = new LovrabetRequest();
request.setAppCode("app-c2dd52a2");
request.setModelCode("32c036010c504757b80d438e3c0ec8b7");
request.setId(id);
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("TEXT_1", "批量更新的内容");
request.setParamMap(paramMap);
LovrabetResult<String> result = sdkClient.update(request);
if (result.isSuccess()) {
System.out.println("ID " + id + " 更新成功");
} else {
System.err.println("ID " + id + " 更新失败: " + result.getResultMsg());
}
}
}
}Error cases
| Error case | Result | Suggested handling |
|---|---|---|
| ID not found | success=false | Check that the ID is correct |
| Required parameter is empty | Throws IllegalArgumentException | Check the required parameters |
| Field type mismatch | success=false | Check the field value types |
Appendix: API server URL
Production: https://runtime.lovrabet.com/openapi
Next steps
Now that you know all the APIs, we suggest continuing in this order:
- 📖 Quick start — build your first CRUD program in 5 minutes
- 📚 Core concepts — understand how the SDK works
- 📋 API reference ← you are here — the complete API documentation
- 💡 Examples ← recommended next — 5 real-world implementations
- 🚀 Best practices — production optimization tips
- ❓ FAQ — answers to common questions
Need help? See the FAQ or contact service@lovrabet.com