diff --git a/core/core-backend/src/main/java/io/dataease/datasource/provider/ApiUtils.java b/core/core-backend/src/main/java/io/dataease/datasource/provider/ApiUtils.java index 64e42f081f..d6317d83cc 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/provider/ApiUtils.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/provider/ApiUtils.java @@ -194,6 +194,26 @@ public class ApiUtils { return response; } + private static void previewNum(List> field){ + for (Map stringObjectMap : field) { + JSONArray newArray = new JSONArray(); + if (stringObjectMap.get("value") != null) { + try { + TypeReference listTypeReference = new TypeReference() { + }; + JSONArray array = objectMapper.readValue(stringObjectMap.get("value").toString(), listTypeReference); + if(array.size() > 100){ + for (int i = 0; i < Math.min(100, array.size()); i++) { + newArray.add(array.get(i)); + } + stringObjectMap.put("value", newArray); + } + } catch (Exception e) { + + } + } + } + } public static ApiDefinition checkApiDefinition(ApiDefinition apiDefinition, String response) throws DEException { if (StringUtils.isEmpty(response)) { @@ -217,6 +237,7 @@ public class ApiUtils { rootPath = "$"; handleStr(apiDefinition, response, fields, rootPath); } + previewNum(fields); apiDefinition.setJsonFields(fields); return apiDefinition; } else { diff --git a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java index 587c358431..bd37f22672 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java @@ -493,6 +493,9 @@ public class DatasourceServer implements DatasourceApi { public DatasourceDTO get(Long datasourceId) throws DEException { DatasourceDTO datasourceDTO = new DatasourceDTO(); CoreDatasource datasource = datasourceMapper.selectById(datasourceId); + if(datasource == null){ + DEException.throwException("不存在的数据源!"); + } BeanUtils.copyBean(datasourceDTO, datasource); TypeReference> listTypeReference = new TypeReference>() { }; @@ -838,6 +841,7 @@ public class DatasourceServer implements DatasourceApi { if (request.keySet().contains("type") && request.get("type").equals("apiStructure")) { apiDefinition.setShowApiStructure(true); } + ApiUtils.checkApiDefinition(apiDefinition, response); if (apiDefinition.getRequest().getAuthManager() != null && StringUtils.isNotBlank(apiDefinition.getRequest().getAuthManager().getUsername()) && StringUtils.isNotBlank(apiDefinition.getRequest().getAuthManager().getPassword()) && apiDefinition.getRequest().getAuthManager().getVerification().equals("Basic Auth")) { apiDefinition.getRequest().getAuthManager().setUsername(new String(Base64.getEncoder().encode(apiDefinition.getRequest().getAuthManager().getUsername().getBytes()))); diff --git a/core/core-frontend/src/views/visualized/data/datasource/form/ApiHttpRequestDraw.vue b/core/core-frontend/src/views/visualized/data/datasource/form/ApiHttpRequestDraw.vue index 409d8f27ee..ab4e66effd 100644 --- a/core/core-frontend/src/views/visualized/data/datasource/form/ApiHttpRequestDraw.vue +++ b/core/core-frontend/src/views/visualized/data/datasource/form/ApiHttpRequestDraw.vue @@ -293,8 +293,8 @@ const previewData = () => { for (let i = 0; i < apiItem.fields.length; i++) { for (let j = 0; j < apiItem.fields[i].value.length; j++) { data[j][apiItem.fields[i].name] = apiItem.fields[i].value[j] - data[j]['id'] = apiItem.fields[i].name } + columnTmp.push({ key: apiItem.fields[i].name, dataKey: apiItem.fields[i].name, diff --git a/de-xpack b/de-xpack index 2960fb1df0..4ed3bd70e3 160000 --- a/de-xpack +++ b/de-xpack @@ -1 +1 @@ -Subproject commit 2960fb1df000a7136b7dd627040da0b4c0f1cd26 +Subproject commit 4ed3bd70e3ecd24fcc3db5dfd0218e72b0c2c18f diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/ds/vo/ApiDefinition.java b/sdk/api/api-base/src/main/java/io/dataease/api/ds/vo/ApiDefinition.java index 810ef1964d..8a6f3e18db 100644 --- a/sdk/api/api-base/src/main/java/io/dataease/api/ds/vo/ApiDefinition.java +++ b/sdk/api/api-base/src/main/java/io/dataease/api/ds/vo/ApiDefinition.java @@ -20,8 +20,7 @@ public class ApiDefinition { private String status; private List> data = new ArrayList<>(); private Integer apiQueryTimeout = 10; - private int previewNum = 10; - private int maxPreviewNum = 10; + private int previewNum = 100; private int serialNumber; private boolean useJsonPath; private String jsonPath;