diff --git a/core/backend/src/main/java/io/dataease/controller/request/datasource/ApiDefinition.java b/core/backend/src/main/java/io/dataease/controller/request/datasource/ApiDefinition.java index 540081cefa..f786e37618 100644 --- a/core/backend/src/main/java/io/dataease/controller/request/datasource/ApiDefinition.java +++ b/core/backend/src/main/java/io/dataease/controller/request/datasource/ApiDefinition.java @@ -17,6 +17,7 @@ public class ApiDefinition { private List fields; private ApiDefinitionRequest request; private String dataPath; + private Integer queryTimeout; private String status; private List> data = new ArrayList<>(); private List jsonFields = new ArrayList<>(); diff --git a/core/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java b/core/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java index b9478cb16e..31d26fce1c 100644 --- a/core/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java +++ b/core/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java @@ -37,14 +37,10 @@ public class ApiProvider extends Provider { private static String path = "['%s']"; - @Resource - private SystemParameterService systemParameterService; - @Override public List getData(DatasourceRequest datasourceRequest) throws Exception { - BasicInfo basicInfo = systemParameterService.basicInfo(); ApiDefinition apiDefinition = checkApiDefinition(datasourceRequest); - String response = execHttpRequest(apiDefinition, StringUtils.isNotBlank(basicInfo.getFrontTimeOut()) ? Integer.parseInt(basicInfo.getFrontTimeOut()) : 10); + String response = execHttpRequest(apiDefinition, apiDefinition.getQueryTimeout() == null || apiDefinition.getQueryTimeout()<=0 ? 30 : apiDefinition.getQueryTimeout()); return fetchResult(response, apiDefinition); } @@ -68,12 +64,11 @@ public class ApiProvider extends Provider { } public Map fetchResultAndField(DatasourceRequest datasourceRequest) throws Exception { - BasicInfo basicInfo = systemParameterService.basicInfo(); Map result = new HashMap<>(); List dataList = new ArrayList<>(); List fieldList = new ArrayList<>(); ApiDefinition apiDefinition = checkApiDefinition(datasourceRequest); - String response = execHttpRequest(apiDefinition, StringUtils.isNotBlank(basicInfo.getFrontTimeOut()) ? Integer.parseInt(basicInfo.getFrontTimeOut()) : 10); + String response = execHttpRequest(apiDefinition, apiDefinition.getQueryTimeout() == null || apiDefinition.getQueryTimeout()<=0 ? 30 : apiDefinition.getQueryTimeout()); fieldList = getTableFields(apiDefinition); result.put("fieldList", fieldList); diff --git a/core/frontend/src/views/system/datasource/DsConfiguration.vue b/core/frontend/src/views/system/datasource/DsConfiguration.vue index 53dea4b597..34b9f4894d 100644 --- a/core/frontend/src/views/system/datasource/DsConfiguration.vue +++ b/core/frontend/src/views/system/datasource/DsConfiguration.vue @@ -525,6 +525,20 @@ + + + + + +
{{ $t('datasource.req_param') }} @@ -981,6 +995,13 @@ export default { trigger: 'blur' } ], + 'apiQueryTimeout': [ + { + required: true, + message: i18n.t('datasource.please_input_query_timeout'), + trigger: 'blur' + } + ], dataPath: [ { required: true, @@ -1001,6 +1022,7 @@ export default { name: '', url: '', method: 'GET', + queryTimeout: 30, request: { headers: [{}], arguments: [], @@ -1018,6 +1040,7 @@ export default { url: '', method: 'GET', dataPath: '', + queryTimeout: 30, request: { headers: [], arguments: [],