Skip to content

API reference

This document is the complete reference for every interface in the Lovrabet Java OpenSDK.


Contents

    1. Dataset management
    • 1.1 Get the dataset code list
    1. Data queries
    • 2.1 Get a single record
    • 2.2 Query records with pagination
    1. 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

Java
public LovrabetResult<?> getDatasetCodeList(LovrabetRequest request)

Request parameters

FieldTypeRequiredDescription
appCodeStringYesApp code

Return value

Type: LovrabetResult<List<String>>

Returned data: a list of dataset code strings

Complete example

Java
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 caseResultSuggested handling
appCode is emptyThrows IllegalArgumentExceptionMake sure appCode is not empty
appCode does not existsuccess=falseCheck that appCode is correct
Network errorsuccess=falseRetry the request

2. Data queries

2.1 Get a single record

Fetches a single record from a dataset by primary key ID.

Method signature

Java
public LovrabetResult<?> getOne(LovrabetRequest request)

Request parameters

FieldTypeRequiredDescription
appCodeStringYesApp code
modelCodeStringYesDataset code
idLongYesPrimary key ID of the record

Return value

Type: LovrabetResult<Map<String, Object>>

Returned data: a Map containing all fields

Complete example

Java
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 caseResultSuggested handling
Required parameter is emptyThrows IllegalArgumentExceptionCheck all required parameters
ID not foundsuccess=falseCheck that the ID is correct
Wrong modelCodesuccess=falseCheck the dataset code

2.2 Query records with pagination

Fetches records from a dataset page by page.

Method signature

Java
public LovrabetResult<?> getList(LovrabetRequest request)

Request parameters

FieldTypeRequiredDescription
appCodeStringYesApp code
modelCodeStringYesDataset code
paramMapMapNoPagination parameters and query conditions

Supported paramMap parameters:

ParameterTypeRequiredDefaultDescription
currentPageIntegerNo1Page number, starting from 1
pageSizeIntegerNo20Number of records per page

Return value

Type: LovrabetResult<List<Map<String, Object>>>

Returned data: a list of records, each as a Map

Basic example

Java
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

Java
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 caseResultSuggested handling
Page number out of rangeReturns an empty listNormal — stop paginating
pageSize too largeMay hurt performanceKeep it at 100 or below
Empty datasetReturns an empty listNormal

3. Data operations

3.1 Create a record

Creates a new record in a dataset.

Method signature

Java
public LovrabetResult<String> create(LovrabetRequest request)

Request parameters

FieldTypeRequiredDescription
appCodeStringYesApp code
modelCodeStringYesDataset code
paramMapMapYesFields 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

Java
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

Java
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 caseResultSuggested handling
Missing required fieldssuccess=falseMake sure all required fields are provided
Field type mismatchsuccess=falseCheck the field value types
Wrong field nameThe record may still be created, but the unknown field is ignoredCheck that field names match the dataset definition

3.2 Update a record

Updates a single record in a dataset.

Method signature

Java
public LovrabetResult<String> update(LovrabetRequest request)

Request parameters

FieldTypeRequiredDescription
appCodeStringYesApp code
modelCodeStringYesDataset code
idLongYesID of the record to update
paramMapMapYesFields 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

Java
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

Java
// 只更新单个字段
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("TEXT_1", "新的文本内容");
request.setParamMap(paramMap);

LovrabetResult<String> result = sdkClient.update(request);

Batch update example

Java
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 caseResultSuggested handling
ID not foundsuccess=falseCheck that the ID is correct
Required parameter is emptyThrows IllegalArgumentExceptionCheck the required parameters
Field type mismatchsuccess=falseCheck 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:

  1. 📖 Quick start — build your first CRUD program in 5 minutes
  2. 📚 Core concepts — understand how the SDK works
  3. 📋 API reference ← you are here — the complete API documentation
  4. 💡 Examples ← recommended next — 5 real-world implementations
  5. 🚀 Best practices — production optimization tips
  6. FAQ — answers to common questions

Need help? See the FAQ or contact service@lovrabet.com

基于飞书知识库同步生成,内容以飞书源文档为准