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