diff --git a/backend/src/main/java/io/dataease/controller/datasource/DatasourceController.java b/backend/src/main/java/io/dataease/controller/datasource/DatasourceController.java index 700e8ce7be..52843a0b7f 100644 --- a/backend/src/main/java/io/dataease/controller/datasource/DatasourceController.java +++ b/backend/src/main/java/io/dataease/controller/datasource/DatasourceController.java @@ -164,6 +164,9 @@ public class DatasourceController { public ApiDefinition checkApiDatasource(@RequestBody Map data) throws Exception { ApiDefinition apiDefinition = new Gson().fromJson(new String(java.util.Base64.getDecoder().decode(data.get("data"))), new TypeToken() { }.getType()); + if(data.keySet().contains("type") && data.get("type").equals("apiStructure")){ + apiDefinition.setShowApiStructure(true); + } return datasourceService.checkApiDatasource(apiDefinition); } diff --git a/backend/src/main/java/io/dataease/controller/request/datasource/ApiDefinition.java b/backend/src/main/java/io/dataease/controller/request/datasource/ApiDefinition.java index 9b810e15e8..b3689548c6 100644 --- a/backend/src/main/java/io/dataease/controller/request/datasource/ApiDefinition.java +++ b/backend/src/main/java/io/dataease/controller/request/datasource/ApiDefinition.java @@ -25,5 +25,6 @@ public class ApiDefinition { private int serialNumber; private boolean useJsonPath; private String jsonPath; + private boolean showApiStructure; } diff --git a/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java b/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java index 058b4fb6ca..c1e5c73141 100644 --- a/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java +++ b/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java @@ -186,7 +186,7 @@ public class ApiProvider extends Provider { throw new Exception("该请求返回数据为空"); } List fields = new ArrayList<>(); - if (apiDefinition.isUseJsonPath()) { + if (apiDefinition.isUseJsonPath() && !apiDefinition.isShowApiStructure()) { List currentData = new ArrayList<>(); Object object = JsonPath.read(response, apiDefinition.getJsonPath()); if (object instanceof List) { diff --git a/frontend/src/views/system/datasource/DsConfiguration.vue b/frontend/src/views/system/datasource/DsConfiguration.vue index 46784ee9cf..21e0e699c3 100644 --- a/frontend/src/views/system/datasource/DsConfiguration.vue +++ b/frontend/src/views/system/datasource/DsConfiguration.vue @@ -587,51 +587,12 @@ width="255" > - -
- {{ $t('dataset.data_preview') }} -
- - - - - - @@ -1221,7 +1182,7 @@ export default { if (valid) { const data = Base64.encode(JSON.stringify(this.apiItem)) this.loading = true - checkApiDatasource({'data': data}) + checkApiDatasource({'data': data, 'type': 'apiStructure'}) .then((res) => { res.data.jsonFields.forEach(((item) => { item.checked = false