API Reference
This document provides a complete reference for all interfaces in the Lovrabet Java OpenSDK.
Table of Contents
1. Dataset Management
1.1 Get Dataset List
Get all dataset codes for a specified application.
Method Signature
public LovrabetResult<?> getDatasetCodeList(LovrabetRequest request)
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| appCode | String | Yes | Application code |
Return Value
Type: LovrabetResult<List<String>>
Return Data: 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) {
// Create client
LovrabetSDKClient sdkClient = new LovrabetSDKClient(
"ak-OD8xWhMOsL5ChQ3Akhv4uYYiu1fPOFQGVF9BULIeov8",
"https://runtime.lovrabet.com/openapi"
);
// Build request
LovrabetRequest request = new LovrabetRequest();
request.setAppCode("app-c2dd52a2");
// Call interface
LovrabetResult<?> result = sdkClient.getDatasetCodeList(request);
// Process result
if (result.isSuccess()) {
List<String> datasetList = (List<String>) result.getData();
System.out.println("Dataset count: " + datasetList.size());
System.out.println("Dataset list: " + datasetList);
} else {
System.err.println("Failed to get: " + result.getResultMsg());
}
}
}
Exception Cases
| Error Scenario | Result | Suggested Action |
|---|---|---|
| appCode is empty | Throws IllegalArgumentException | Ensure appCode is not empty |
| appCode does not exist | success=false | Check if appCode is correct |
| Network exception | success=false | Retry request |
2. Data Query
2.1 Get Single Record
Get a single record from a specified dataset by primary key ID.
Method Signature
public LovrabetResult<?> getOne(LovrabetRequest request)
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| appCode | String | Yes | Application code |
| modelCode | String | Yes | Dataset code |
| id | Long | Yes | Primary key ID of the data record |
Return Value
Type: LovrabetResult<Map<String, Object>>
Return Data: Map object 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) {
// Create client
LovrabetSDKClient sdkClient = new LovrabetSDKClient(
"ak-OD8xWhMOsL5ChQ3Akhv4uYYiu1fPOFQGVF9BULIeov8",
"https://runtime.lovrabet.com/openapi"
);
// Build request
LovrabetRequest request = new LovrabetRequest();
request.setAppCode("app-c2dd52a2");
request.setModelCode("32c036010c504757b80d438e3c0ec8b7");
request.setId(513L);
// Call interface
LovrabetResult<?> result = sdkClient.getOne(request);
// Process result
if (result.isSuccess()) {
Map<String, Object> data = (Map<String, Object>) result.getData();
System.out.println("Data content: " + data);
// Access specific fields
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("Failed to get: " + result.getResultMsg());
}
}
}
Exception Cases
| Error Scenario | Result | Suggested Action |
|---|---|---|
| Required parameter is empty | Throws IllegalArgumentException | Check all required parameters |
| ID does not exist | success=false | Check if ID is correct |
| modelCode error | success=false | Check dataset code |
2.2 Paginated Query Data List
Get paginated data list from a specified dataset.
Method Signature
public LovrabetResult<?> getList(LovrabetRequest request)
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| appCode | String | Yes | Application code |
| modelCode | String | Yes | Dataset code |
| paramMap | Map | No | Pagination parameters and query conditions |
Supported parameters in paramMap:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| currentPage | Integer | No | 1 | Current page number, starting from 1 |
| pageSize | Integer | No | 20 | Number of records per page |
Return Value
Type: LovrabetResult<List<Map<String, Object>>>
Return Data: List of data records, each record is 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) {
// Create client
LovrabetSDKClient sdkClient = new LovrabetSDKClient(
"ak-OD8xWhMOsL5ChQ3Akhv4uYYiu1fPOFQGVF9BULIeov8",
"https://runtime.lovrabet.com/openapi"
);
// Build request
LovrabetRequest request = new LovrabetRequest();
request.setAppCode("app-c2dd52a2");
request.setModelCode("b460abdbb0fb49e1865110d9dfbbc9b4");
// Set pagination parameters
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("pageSize", 10); // 10 records per page
paramMap.put("currentPage", 1); // Page 1
request.setParamMap(paramMap);
// Call interface
LovrabetResult<?> result = sdkClient.getList(request);
// Process result
if (result.isSuccess()) {
List<Map<String, Object>> dataList = (List<Map<String, Object>>) result.getData();
System.out.println("Records on this page: " + dataList.size());
// Iterate through data
for (Map<String, Object> record : dataList) {
System.out.println("Record: " + record);
}
} else {
System.err.println("Failed to get: " + result.getResultMsg());
}
}
}
Advanced Example: Paginate Through All Data
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) {
// Build paginated request
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);
// Query data
LovrabetResult<?> result = sdkClient.getList(request);
if (result.isSuccess()) {
List<Map<String, Object>> dataList =
(List<Map<String, Object>>) result.getData();
if (dataList.isEmpty()) {
hasMore = false; // No more data
} else {
// Process current page data
System.out.println("Page " + currentPage + ", records: " + dataList.size());
for (Map<String, Object> record : dataList) {
// Process each record
processRecord(record);
}
// Check if there's a next page
if (dataList.size() < pageSize) {
hasMore = false;
} else {
currentPage++;
}
}
} else {
System.err.println("Query failed: " + result.getResultMsg());
break;
}
}
}
private static void processRecord(Map<String, Object> record) {
// Business logic for processing a single record
System.out.println(record);
}
}
Exception Cases
| Error Scenario | Result | Suggested Action |
|---|---|---|
| Page number out of range | Returns empty list | Normal case, stop pagination |
| pageSize too large | May affect performance | Recommend not exceeding 100 |
| Dataset is empty | Returns empty list | Normal case |
3. Data Operations
3.1 Create Data
Create a new data record in a specified dataset.
Method Signature
public LovrabetResult<String> create(LovrabetRequest request)
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| appCode | String | Yes | Application code |
| modelCode | String | Yes | Dataset code |
| paramMap | Map | Yes | Data fields to create |
paramMap Field Notes:
- Field names must match the field codes defined in the dataset
- Field value types must match the field types defined in the dataset
- Required fields must be provided, otherwise creation fails
- Empty value fields are automatically filtered
Return Value
Type: LovrabetResult<String>
Return Data: ID of the newly created record (string format)
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) {
// Create client
LovrabetSDKClient sdkClient = new LovrabetSDKClient(
"ak-OD8xWhMOsL5ChQ3Akhv4uYYiu1fPOFQGVF9BULIeov8",
"https://runtime.lovrabet.com/openapi"
);
// Build request
LovrabetRequest request = new LovrabetRequest();
request.setAppCode("app-c2dd52a2");
request.setModelCode("32c036010c504757b80d438e3c0ec8b7");
// Set business data
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("TEXT_1", "Sales Order 1010"); // Text field
paramMap.put("NUMBER_3", 121); // Number field
paramMap.put("NUMBER_8", 888); // Number field
paramMap.put("SELECT_4", "china-north"); // Select field
paramMap.put("SELECT_7", 463); // Select field
request.setParamMap(paramMap);
// Call interface
LovrabetResult<String> result = sdkClient.create(request);
// Process result
if (result.isSuccess()) {
String newId = result.getData();
System.out.println("Created successfully, new record ID: " + newId);
} else {
System.err.println("Creation failed: " + result.getResultMsg());
}
}
}
Field Type Examples
Map<String, Object> paramMap = new HashMap<>();
// Text type
paramMap.put("TEXT_1", "This is text content");
// Number type (integer)
paramMap.put("NUMBER_1", 100);
// Number type (decimal)
paramMap.put("NUMBER_2", 99.99);
// DateTime type (timestamp, milliseconds)
paramMap.put("DATETIME_1", System.currentTimeMillis());
// DateTime type (string format)
paramMap.put("DATETIME_2", "2025-10-11 12:00:00");
// Boolean type
paramMap.put("BOOLEAN_1", true);
// Select field (string)
paramMap.put("SELECT_1", "option-value");
// Select field (number)
paramMap.put("SELECT_2", 123);
// Multi-select field (list)
paramMap.put("MULTI_SELECT_1", Arrays.asList("value1", "value2"));
Exception Cases
| Error Scenario | Result | Suggested Action |
|---|---|---|
| Required field missing | success=false | Check if all required fields are provided |
| Field type mismatch | success=false | Check field value types |
| Field name error | Creation may succeed, but wrong field is ignored | Check if field names match dataset definition |
3.2 Update Data
Update a single record in a specified dataset.
Method Signature
public LovrabetResult<String> update(LovrabetRequest request)
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| appCode | String | Yes | Application code |
| modelCode | String | Yes | Dataset code |
| id | Long | Yes | ID of the record to update |
| paramMap | Map | Yes | Fields to update |
paramMap Field Notes:
- Only include fields that need to be updated, no need to pass all fields
- Field names must match the field codes defined in the dataset
- Field value types must match the field types defined in the dataset
Return Value
Type: LovrabetResult<String>
Return Data: Result message of the update operation
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) {
// Create client
LovrabetSDKClient sdkClient = new LovrabetSDKClient(
"ak-OD8xWhMOsL5ChQ3Akhv4uYYiu1fPOFQGVF9BULIeov8",
"https://runtime.lovrabet.com/openapi"
);
// Build request
LovrabetRequest request = new LovrabetRequest();
request.setAppCode("app-c2dd52a2");
request.setModelCode("32c036010c504757b80d438e3c0ec8b7");
request.setId(513L); // ID of the record to update
// Set fields to update (only include fields to modify)
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("TEXT_1", "Sales Order 1011"); // Update text field
paramMap.put("NUMBER_3", 121); // Update number field
request.setParamMap(paramMap);
// Call interface
LovrabetResult<String> result = sdkClient.update(request);
// Process result
if (result.isSuccess()) {
System.out.println("Update successful: " + result.getData());
} else {
System.err.println("Update failed: " + result.getResultMsg());
}
}
}
Partial Field Update Example
// Update only a single field
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("TEXT_1", "New text content");
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"
);
// List of record IDs to update
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", "Batch updated content");
request.setParamMap(paramMap);
LovrabetResult<String> result = sdkClient.update(request);
if (result.isSuccess()) {
System.out.println("ID " + id + " updated successfully");
} else {
System.err.println("ID " + id + " update failed: " + result.getResultMsg());
}
}
}
}
Exception Cases
| Error Scenario | Result | Suggested Action |
|---|---|---|
| ID does not exist | success=false | Check if ID is correct |
| Required parameter is empty | Throws IllegalArgumentException | Check required parameters |
| Field type mismatch | success=false | Check field value types |
Appendix: API Server Address
Production Environment: https://runtime.lovrabet.com/openapi
Next Steps
Now that you're familiar with all API interfaces, we recommend continuing in this order:
-
📖 Quick Start Complete your first CRUD program in 5 minutes
-
📚 Core Concepts Deep dive into SDK working principles
-
📋 API Reference ← Current location Consult complete interface documentation
-
💡 Business Examples ← Recommended next Learn implementations of 5 real-world scenarios
-
🚀 Best Practices Master production environment optimization techniques
-
❓ FAQ Resolve usage questions
Need help? Visit FAQ or contact service@lovrabet.com