feat: 在数据表的配置页,增加请求超时时间的控制,默认请求超时时间为:30s

This commit is contained in:
taojinlong 2023-11-09 17:25:04 +08:00
parent dcfaeb33b3
commit 1bff8251c1
3 changed files with 26 additions and 7 deletions

View File

@ -17,6 +17,7 @@ public class ApiDefinition {
private List<DatasetTableFieldDTO> fields;
private ApiDefinitionRequest request;
private String dataPath;
private Integer queryTimeout;
private String status;
private List<Map<String,String>> data = new ArrayList<>();
private List<JSONObject> jsonFields = new ArrayList<>();

View File

@ -37,14 +37,10 @@ public class ApiProvider extends Provider {
private static String path = "['%s']";
@Resource
private SystemParameterService systemParameterService;
@Override
public List<String[]> 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<String, List> fetchResultAndField(DatasourceRequest datasourceRequest) throws Exception {
BasicInfo basicInfo = systemParameterService.basicInfo();
Map<String, List> result = new HashMap<>();
List<String[]> dataList = new ArrayList<>();
List<TableField> 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);

View File

@ -525,6 +525,20 @@
</el-input>
</el-form-item>
<el-form-item
:label="$t('datasource.query_timeout')"
prop="apiQueryTimeout"
>
<el-input
v-model="apiItem.queryTimeout"
autocomplete="off"
type="number"
:min="0"
>
<template slot="append">{{ $t('panel.second') }}</template>
</el-input>
</el-form-item>
<div v-loading="loading">
<div class="row-rules mr40">
<span>{{ $t('datasource.req_param') }}</span>
@ -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: [],