Skip to main content

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​

FieldTypeRequiredDescription
appCodeStringYesApplication 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 ScenarioResultSuggested Action
appCode is emptyThrows IllegalArgumentExceptionEnsure appCode is not empty
appCode does not existsuccess=falseCheck if appCode is correct
Network exceptionsuccess=falseRetry 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​

FieldTypeRequiredDescription
appCodeStringYesApplication code
modelCodeStringYesDataset code
idLongYesPrimary 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 ScenarioResultSuggested Action
Required parameter is emptyThrows IllegalArgumentExceptionCheck all required parameters
ID does not existsuccess=falseCheck if ID is correct
modelCode errorsuccess=falseCheck 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​

FieldTypeRequiredDescription
appCodeStringYesApplication code
modelCodeStringYesDataset code
paramMapMapNoPagination parameters and query conditions

Supported parameters in paramMap:

ParameterTypeRequiredDefaultDescription
currentPageIntegerNo1Current page number, starting from 1
pageSizeIntegerNo20Number 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 ScenarioResultSuggested Action
Page number out of rangeReturns empty listNormal case, stop pagination
pageSize too largeMay affect performanceRecommend not exceeding 100
Dataset is emptyReturns empty listNormal 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​

FieldTypeRequiredDescription
appCodeStringYesApplication code
modelCodeStringYesDataset code
paramMapMapYesData 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 ScenarioResultSuggested Action
Required field missingsuccess=falseCheck if all required fields are provided
Field type mismatchsuccess=falseCheck field value types
Field name errorCreation may succeed, but wrong field is ignoredCheck 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​

FieldTypeRequiredDescription
appCodeStringYesApplication code
modelCodeStringYesDataset code
idLongYesID of the record to update
paramMapMapYesFields 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 ScenarioResultSuggested Action
ID does not existsuccess=falseCheck if ID is correct
Required parameter is emptyThrows IllegalArgumentExceptionCheck required parameters
Field type mismatchsuccess=falseCheck 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:

  1. 📖 Quick Start Complete your first CRUD program in 5 minutes

  2. 📚 Core Concepts Deep dive into SDK working principles

  3. 📋 API Reference ← Current location Consult complete interface documentation

  4. 💡 Business Examples ← Recommended next Learn implementations of 5 real-world scenarios

  5. 🚀 Best Practices Master production environment optimization techniques

  6. ❓ FAQ Resolve usage questions


Need help? Visit FAQ or contact service@lovrabet.com