跳到主要内容

API 参考

本文档提供 Lovrabet Java OpenSDK 所有接口的完整参考。


目录


1. 数据集管理

1.1 获取数据集列表

获取指定应用下的所有数据集编码列表。

方法签名

public LovrabetResult<?> getDatasetCodeList(LovrabetRequest request)

请求参数

字段类型必填说明
appCodeString应用编码

返回值

类型LovrabetResult<List<String>>

返回数据:数据集编码的字符串列表

完整示例

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());
}
}
}

异常情况

错误场景结果处理建议
appCode 为空抛出 IllegalArgumentException确保 appCode 不为空
appCode 不存在success=false检查 appCode 是否正确
网络异常success=false重试请求

2. 数据查询

2.1 获取单条数据

根据主键 ID 获取指定数据集中的单条记录。

方法签名

public LovrabetResult<?> getOne(LovrabetRequest request)

请求参数

字段类型必填说明
appCodeString应用编码
modelCodeString数据集编码
idLong数据记录的主键 ID

返回值

类型LovrabetResult<Map<String, Object>>

返回数据:包含完整字段的 Map 对象

完整示例

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());
}
}
}

异常情况

错误场景结果处理建议
必填参数为空抛出 IllegalArgumentException检查所有必填参数
ID 不存在success=false检查 ID 是否正确
modelCode 错误success=false检查数据集编码

2.2 分页查询数据列表

分页获取指定数据集中的数据列表。

方法签名

public LovrabetResult<?> getList(LovrabetRequest request)

请求参数

字段类型必填说明
appCodeString应用编码
modelCodeString数据集编码
paramMapMap分页参数和查询条件

paramMap 支持的参数

参数名类型必填默认值说明
currentPageInteger1当前页码,从 1 开始
pageSizeInteger20每页显示的记录数

返回值

类型LovrabetResult<List<Map<String, Object>>>

返回数据:数据记录的列表,每条记录为一个 Map

基础示例

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());
}
}
}

高级示例:分页遍历所有数据

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);
}
}

异常情况

错误场景结果处理建议
页码超出范围返回空列表正常情况,停止翻页
pageSize 过大可能影响性能建议不超过 100
数据集为空返回空列表正常情况

3. 数据操作

3.1 创建数据

在指定数据集中创建一条新的数据记录。

方法签名

public LovrabetResult<String> create(LovrabetRequest request)

请求参数

字段类型必填说明
appCodeString应用编码
modelCodeString数据集编码
paramMapMap要创建的数据字段

paramMap 字段说明

  • 字段名需要与数据集定义的字段编码(code)一致
  • 字段值类型需要与数据集定义的字段类型匹配
  • 必填字段必须提供,否则创建失败
  • 空值字段会被自动过滤

返回值

类型LovrabetResult<String>

返回数据:新创建记录的 ID(字符串格式)

完整示例

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());
}
}
}

字段类型示例

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"));

异常情况

错误场景结果处理建议
必填字段缺失success=false检查必填字段是否都已提供
字段类型不匹配success=false检查字段值的类型
字段名错误数据创建可能成功,但错误字段被忽略检查字段名是否与数据集定义一致

3.2 更新数据

更新指定数据集中的单条记录。

方法签名

public LovrabetResult<String> update(LovrabetRequest request)

请求参数

字段类型必填说明
appCodeString应用编码
modelCodeString数据集编码
idLong要更新的记录 ID
paramMapMap要更新的字段

paramMap 字段说明

  • 只需要包含需要更新的字段,无需传递全部字段
  • 字段名需要与数据集定义的字段编码一致
  • 字段值类型需要与数据集定义的字段类型匹配

返回值

类型LovrabetResult<String>

返回数据:更新操作的结果消息

完整示例

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());
}
}
}

部分字段更新示例

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

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

批量更新示例

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());
}
}
}
}

异常情况

错误场景结果处理建议
ID 不存在success=false检查 ID 是否正确
必填参数为空抛出 IllegalArgumentException检查必填参数
字段类型不匹配success=false检查字段值的类型

附录:API 服务器地址

正式环境https://runtime.lovrabet.com/openapi


下一步

现在您已经熟悉了所有 API 接口,建议按以下顺序继续学习

  1. 📖 快速开始 5 分钟完成第一个 CRUD 程序

  2. 📚 核心概念 深入理解 SDK 工作原理

  3. 📋 API 参考 ← 当前位置 查阅完整的接口文档

  4. 💡 业务示例 ← 推荐下一步 学习 5 个真实场景的实现

  5. 🚀 最佳实践 掌握生产环境优化技巧

  6. 常见问题 解决使用中的疑问


需要帮助? 访问 常见问题 或联系 service@lovrabet.com