成功完成了InfiLake OpenAPI Java SDK的v1.5.2版本升级,新增异常处理体系、客户端申请单号查询API、Jackson JSON处理等重要功能,提供类型安全、错误处理完善的SDK解决方案。
BREAKING CHANGE: 所有API方法现在抛出checked exception BiddingApiException而非IOException
getOrderByClientApplicationNo() - 根据客户端申请单号查询订单getOrderFulfillmentByClientApplicationNo() - 根据客户端申请单号查询履约单Order - 订单实体OrderItem - 订单明细OrderFulfillment - 履约信息OrderExpress - 物流信息(含ExpressTrace内部类)OrderReturn - 退货信息(含ReturnItem内部类)Settlement - 结算单Invoice - 发票Project - 项目Product - 物料/产品Warehouse - 仓库PurchaseApplication - 采购申请ApplicationItem - 采购申请明细升级了所有33个API方法,返回类型化对象,并自动抛出异常:
| API分类 | 方法数 | 返回类型 |
|---|---|---|
| 订单API | 9 | ApiResult<PageResult<Order>>, ApiResult<Order>, ApiResult<List<Order>>等 |
| 项目API | 2 | ApiResult<PageResult<Project>>, ApiResult<Project> |
| 采购申请API | 4 | ApiResult<String> |
| 物料API | 6 | ApiResult<Boolean> |
| 类别API | 6 | ApiResult<PageResult<Category>>, ApiResult<Boolean> |
| 结算单API | 3 | ApiResult<PageResult<Settlement>>, ApiResult<Invoice>等 |
| 仓库API | 1 | ApiResult<PageResult<Warehouse>> |
| 用户档案API | 1 | ApiResult<Profile> |
特点:
特点:
| 指标 | v1.5.0 | v1.5.1 | v1.5.2 |
|---|---|---|---|
| JAR大小 | 51KB | 60KB | 78KB |
| 类数量 | 39个 | 39个 | 46个 |
| API方法数 | 29个 | 31个 | 33个 |
| 异常处理 | IOException | IOException | BiddingApiException |
| JSON处理 | 自定义解析器 | Jackson | Jackson |
| 日期格式 | ISO 8601 | 多格式 | 多格式 |
try {
ApiResult<Order> result = client.getOrderDetail("ORDER123");
if (result.isSuccess()) {
Order order = result.getData();
// 处理订单
}
} catch (IOException e) {
// 处理网络错误
}
try {
ApiResult<Order> result = client.getOrderDetail("ORDER123");
// 不需要检查 isSuccess(),失败会自动抛异常
Order order = result.getData();
// 处理订单
} catch (DataNotFoundException e) {
// 订单不存在 (20502)
System.err.println("订单未找到: " + e.getMessage());
} catch (UnauthorizedException e) {
// 认证失败 (20401)
System.err.println("认证失败,请检查token");
} catch (BiddingApiException e) {
// 其他API错误
System.err.println("API错误 [" + e.getCode() + "]: " + e.getMessage());
}
基于API错误码,提供7种具体异常类型,实现精确的错误处理和编译时检查。
采用业界标准Jackson库,支持复杂对象序列化,自动处理日期格式转换。
yyyy-MM-dd HH:mm:ss (API常用格式)yyyy-MM-dd'T'HH:mm:ss'Z' (ISO 8601)yyyy-MM-dd'T'HH:mm:ss.SSS'Z'yyyy-MM-ddyyyy/MM/dd HH:mm:ss新增通过客户端申请单号查询订单和履约单的API,方便与外部系统集成。
import com.infilake.openapi.bidding.BiddingApiClient;
import com.infilake.openapi.bidding.model.*;
import com.infilake.openapi.bidding.model.base.*;
import com.infilake.openapi.bidding.exception.*;
// 1. 创建客户端
BiddingApiClient client = new BiddingApiClient(
"https://api.example.com",
"your-access-key",
"your-secret-key"
);
// 2. 调用API - 返回类型化对象
try {
ApiResult<PageResult<Order>> result = client.getOrderPage(1, 10, null, null, null, null, null);
// 3. 处理响应 - 失败会自动抛异常
PageResult<Order> pageResult = result.getData();
System.out.println("Total: " + pageResult.getTotal());
for (Order order : pageResult.getRecords()) {
System.out.println(order.getOrderNo() + ": ¥" + order.getTotalAmount());
}
} catch (DataNotFoundException e) {
System.err.println("数据不存在: " + e.getMessage());
} catch (BiddingApiException e) {
System.err.println("API错误 [" + e.getCode() + "]: " + e.getMessage());
}
✅ 成功实现了InfiLake OpenAPI SDK v1.5.2的全面升级:
提供了一个类型安全、错误处理完善、易于维护的SDK解决方案。
© 2025 Infilake OpenAPI · 版本 1.5.2 · 交付日期: 2026-01-27