跳到主要内容

15.1.6.1 示例:查询元素树

场景: 遍历父节点下的所有元素并打印其名称和 ID。适用于资产清查、构建元素选择器,或向外部系统同步数据。

import org.openapitools.client.ApiClient;
import org.openapitools.client.api.ElementResourceApi;
import org.openapitools.client.api.ElementResourceApi.ApiV1ElementsGetQueryParams;
import org.openapitools.client.api.UserResourceApi;
import org.openapitools.client.model.*;

public class QueryElementsExample {

public static void main(String[] args) {
// 1. Authenticate
ApiClient apiClient = new ApiClient("Authorization");
apiClient.setBasePath(System.getenv("IDMP_HOST"));

UserResourceApi userApi = apiClient.buildClient(UserResourceApi.class);
LoginReqDTO req = new LoginReqDTO();
req.setLoginName(System.getenv("IDMP_USERNAME"));
req.setPassword(System.getenv("IDMP_PASSWORD"));
LoginRspDTO rsp = userApi.apiV1UsersLoginPost(req);
apiClient.setBearerToken(rsp.getToken());

// 2. Paginate through all elements
ElementResourceApi elementApi = apiClient.buildClient(ElementResourceApi.class);
int pageNum = 1;
int pageSize = 100;

while (true) {
ApiV1ElementsGetQueryParams params = new ApiV1ElementsGetQueryParams()
.pageNum(pageNum)
.pageSize(pageSize);
PageOfBasicElementDTO result = elementApi.apiV1ElementsGet(params);

for (BasicElementDTO elem : result.getData()) {
System.out.printf("ID: %-30s Name: %s%n", elem.getId(), elem.getName());
}

if (result.getData().size() < pageSize) break; // last page
pageNum++;
}
}
}