API 参考
本文档提供 Lovrabet Java OpenSDK 所有接口的完整参考。
目录
1. 数据集管理
1.1 获取数据集列表
获取指定应用下的所有数据集编码列表。
方法签名
public LovrabetResult<?> getDatasetCodeList(LovrabetRequest request)
请求参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| appCode | String | 是 | 应用编码 |
返回值
类型: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)
请求参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| appCode | String | 是 | 应用编码 |
| modelCode | String | 是 | 数据集编码 |
| id | Long | 是 | 数据记录的主键 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)
请求参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| appCode | String | 是 | 应用编码 |
| modelCode | String | 是 | 数据集编码 |
| paramMap | Map | 否 | 分页参数和查询条件 |
paramMap 支持的参数:
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| currentPage | Integer | 否 | 1 | 当前页码,从 1 开始 |
| pageSize | Integer | 否 | 20 | 每页显示的记录数 |
返回值
类型: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)
请求参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| appCode | String | 是 | 应用编码 |
| modelCode | String | 是 | 数据集编码 |
| paramMap | Map | 是 | 要创建的数据字段 |
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)
请求参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| appCode | String | 是 | 应用编码 |
| modelCode | String | 是 | 数据集编码 |
| id | Long | 是 | 要更新的记录 ID |
| paramMap | Map | 是 | 要更新的字段 |
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 接口,建议按以下顺序继续学习:
-
📖 快速开始 5 分钟完成第一个 CRUD 程序
-
📚 核心概念 深入理解 SDK 工作原理
-
📋 API 参考 ← 当前位置 查阅完整的接口文档
-
💡 业务示例 ← 推荐下一步 学习 5 个真实场景的实现
-
🚀 最佳实践 掌握生产环境优化技巧
-
❓ 常见问题 解决使用中的疑问
需要帮助? 访问 常见问题 或联系 service@lovrabet.com