Merge pull request #9754 from dataease/pr@dev-v2@sysvariable
fix(数据源): API 数据源支持设置请求超时
This commit is contained in:
commit
fa7b5c9a50
@ -59,7 +59,7 @@ public class ApiUtils {
|
||||
if (apiDefinition == null) {
|
||||
DEException.throwException("未找到");
|
||||
}
|
||||
String response = execHttpRequest(apiDefinition, 10);
|
||||
String response = execHttpRequest(apiDefinition, apiDefinition.getApiQueryTimeout() == null || apiDefinition.getApiQueryTimeout() <= 0 ? 10 : apiDefinition.getApiQueryTimeout());
|
||||
fieldList = getTableFields(apiDefinition);
|
||||
result.put("fieldList", fieldList);
|
||||
dataList = fetchResult(response, apiDefinition);
|
||||
@ -116,7 +116,7 @@ public class ApiUtils {
|
||||
if (apiDefinition == null) {
|
||||
DEException.throwException("未找到");
|
||||
}
|
||||
String response = execHttpRequest(apiDefinition, 10);
|
||||
String response = execHttpRequest(apiDefinition, apiDefinition.getApiQueryTimeout() == null || apiDefinition.getApiQueryTimeout() <= 0 ? 10 : apiDefinition.getApiQueryTimeout());
|
||||
return fetchResult(response, apiDefinition);
|
||||
}
|
||||
|
||||
|
||||
@ -834,7 +834,7 @@ public class DatasourceServer implements DatasourceApi {
|
||||
|
||||
public ApiDefinition checkApiDatasource(Map<String, String> request) throws DEException {
|
||||
ApiDefinition apiDefinition = JsonUtil.parseObject(new String(java.util.Base64.getDecoder().decode(request.get("data"))), ApiDefinition.class);
|
||||
String response = ApiUtils.execHttpRequest(apiDefinition, 10);
|
||||
String response = ApiUtils.execHttpRequest(apiDefinition, apiDefinition.getApiQueryTimeout() == null || apiDefinition.getApiQueryTimeout() <= 0 ? 10 : apiDefinition.getApiQueryTimeout());
|
||||
if (request.keySet().contains("type") && request.get("type").equals("apiStructure")) {
|
||||
apiDefinition.setShowApiStructure(true);
|
||||
}
|
||||
|
||||
@ -31,6 +31,7 @@ export interface ApiItem {
|
||||
fields: Field[]
|
||||
jsonFields: JsonField[]
|
||||
useJsonPath: boolean
|
||||
apiQueryTimeout: number
|
||||
showApiStructure: boolean
|
||||
jsonPath: string
|
||||
serialNumber: number
|
||||
@ -81,6 +82,7 @@ let apiItem = reactive<ApiItem>({
|
||||
fields: [],
|
||||
jsonFields: [],
|
||||
useJsonPath: false,
|
||||
apiQueryTimeout: 10,
|
||||
showApiStructure: false,
|
||||
jsonPath: '',
|
||||
serialNumber: -1
|
||||
@ -95,6 +97,24 @@ const loading = ref(false)
|
||||
const columns = shallowRef([])
|
||||
const tableData = shallowRef([])
|
||||
const apiItemBasicInfo = ref<FormInstance>()
|
||||
const isNumber = (rule, value, callback) => {
|
||||
if (!value) {
|
||||
callback(new Error(t('datasource.please_input_query_timeout')))
|
||||
return
|
||||
}
|
||||
let isNumber = false
|
||||
var reg = /^\d+$/
|
||||
isNumber = reg.test(value)
|
||||
if (!isNumber) {
|
||||
callback(new Error(t('datasource.please_input_query_timeout')))
|
||||
return
|
||||
}
|
||||
if (value <= 0 || value > 300) {
|
||||
callback(new Error(t('datasource.please_input_query_timeout')))
|
||||
return
|
||||
}
|
||||
callback()
|
||||
}
|
||||
const rule = reactive<FormRules>({
|
||||
name: [
|
||||
{
|
||||
@ -109,6 +129,13 @@ const rule = reactive<FormRules>({
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
apiQueryTimeout: [
|
||||
{
|
||||
required: true,
|
||||
validator: isNumber,
|
||||
trigger: ['blur', 'change']
|
||||
}
|
||||
],
|
||||
url: [
|
||||
{
|
||||
required: true,
|
||||
@ -429,7 +456,11 @@ defineExpose({
|
||||
/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
|
||||
<el-form-item :label="$t('datasource.query_timeout')" prop="apiQueryTimeout">
|
||||
<el-input v-model="apiItem.apiQueryTimeout" autocomplete="off" type="number" :min="0">
|
||||
<template v-slot:append>{{ $t('panel.second') }}</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<div class="title-form_primary request-info">
|
||||
<span>{{ t('datasource.isUseJsonPath') }}</span>
|
||||
</div>
|
||||
|
||||
@ -19,8 +19,7 @@ public class ApiDefinition {
|
||||
private ApiDefinitionRequest request;
|
||||
private String status;
|
||||
private List<Map<String, Object>> data = new ArrayList<>();
|
||||
|
||||
|
||||
private Integer apiQueryTimeout = 10;
|
||||
private int previewNum = 10;
|
||||
private int maxPreviewNum = 10;
|
||||
private int serialNumber;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user