diff --git a/backend/src/main/java/io/dataease/controller/request/datasource/ApiDefinitionRequest.java b/backend/src/main/java/io/dataease/controller/request/datasource/ApiDefinitionRequest.java index 6f403541f5..9209c1ee25 100644 --- a/backend/src/main/java/io/dataease/controller/request/datasource/ApiDefinitionRequest.java +++ b/backend/src/main/java/io/dataease/controller/request/datasource/ApiDefinitionRequest.java @@ -9,6 +9,7 @@ import java.util.Map; @Data public class ApiDefinitionRequest { private List> headers = new ArrayList<>(); + private List> arguments = new ArrayList<>(); private JSONObject body = new JSONObject(); private AuthManager authManager = new AuthManager(); 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 913168cf15..8ceb6910b1 100644 --- a/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java +++ b/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java @@ -28,6 +28,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.net.URLEncoder; import java.util.*; import java.util.stream.Collectors; @@ -145,6 +146,15 @@ public class ApiProvider extends Provider { switch (apiDefinition.getMethod()) { case "GET": + List params = new ArrayList<>(); + for (Map argument : apiDefinition.getRequest().getArguments()) { + if(StringUtils.isNotEmpty(argument.get("name")) && StringUtils.isNotEmpty(argument.get("value"))){ + params.add(argument.get("name") + "=" + URLEncoder.encode(argument.get("value"))); + } + } + if(CollectionUtils.isNotEmpty(params)){ + apiDefinition.setUrl(apiDefinition.getUrl() + "?" + StringUtils.join(params, "&")); + } response = HttpClientUtil.get(apiDefinition.getUrl().trim(), httpClientConfig); break; case "POST": diff --git a/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java b/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java index 3393e120fa..17ffcd33cf 100644 --- a/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java +++ b/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java @@ -94,7 +94,11 @@ public class JdbcProvider extends DefaultJdbcProvider { tableNamePattern = String.format(MySQLConstants.KEYWORD_TABLE, tableNamePattern); } } - ResultSet resultSet = databaseMetaData.getColumns(null, "%", tableNamePattern, "%"); + String schemaPattern = "%"; + if (datasourceRequest.getDatasource().getType().equalsIgnoreCase(DatasourceTypes.oracle.name())) { + schemaPattern = databaseMetaData.getUserName(); + } + ResultSet resultSet = databaseMetaData.getColumns(null, schemaPattern, tableNamePattern, "%"); while (resultSet.next()) { String tableName = resultSet.getString("TABLE_NAME"); String database; diff --git a/backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java index 1df605c23a..733b7fcaea 100644 --- a/backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java @@ -1151,7 +1151,7 @@ public class CKQueryProvider extends QueryProvider { whereName = String.format(CKConstants.formatDateTime, String.format(CKConstants.toDateTime, cast), format); } if (field.getDeExtractType() == 1) { - whereName = String.format(CKConstants.formatDateTime, originName, format); + whereName = originName; } } else if (field.getDeType() == 2 || field.getDeType() == 3) { if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js index 4b96813d7f..69354b8cd6 100644 --- a/frontend/src/lang/en.js +++ b/frontend/src/lang/en.js @@ -1926,6 +1926,8 @@ export default { jsonpath_info: 'Please fill in JsonPath', req_param: 'Request parameters', headers: 'Request header', + query_param: "QUERY param", + query_info: "Follow in the address bar? The following parameters, such as: updateAPI? id=112", key: 'Key', value: 'Value', data_path: 'Extract data', diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js index 33d9d8adb8..eebb8c4b66 100644 --- a/frontend/src/lang/tw.js +++ b/frontend/src/lang/tw.js @@ -1920,6 +1920,8 @@ export default { jsonpath_info: '請輸入JsonPath', req_param: '請求參數', headers: '請求頭', + query_param: "QUERY參數", + query_info: "地址欄中跟在?後面的參數,如:updateapi? id=112", key: '鍵', value: '值', data_path: '提取數據', diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js index 94d0b27d51..18f7b604de 100644 --- a/frontend/src/lang/zh.js +++ b/frontend/src/lang/zh.js @@ -1936,6 +1936,8 @@ export default { jsonpath_info: '请填入JsonPath', req_param: '请求参数', headers: '请求头', + query_param: "QUERY參數", + query_info: "地址栏中跟在?后面的参数,如: updateapi?id=112", key: '键', value: '值', data_path: '提取数据', diff --git a/frontend/src/views/system/datasource/ApiHttpRequestForm.vue b/frontend/src/views/system/datasource/ApiHttpRequestForm.vue index 2938b467cc..6534da3c85 100644 --- a/frontend/src/views/system/datasource/ApiHttpRequestForm.vue +++ b/frontend/src/views/system/datasource/ApiHttpRequestForm.vue @@ -36,6 +36,27 @@ /> + + + + {{ $t('datasource.query_param') }} +
+
{{ request.arguments.length - 1 }}
+
+
+
+ +
+ import ApiKeyValue from '@/views/system/datasource/ApiKeyValue' import ApiBody from '@/views/system/datasource/ApiBody' +import ApiVariable from '@/views/system/datasource/ApiVariable.vue' import ApiAuthConfig from '@/views/system/datasource/ApiAuthConfig' import { Body, KeyValue } from '@/views/system/datasource/ApiTestModel' import Convert from '@/views/system/datasource/convert' @@ -87,7 +109,8 @@ export default { components: { ApiAuthConfig, ApiBody, - ApiKeyValue + ApiKeyValue, + ApiVariable }, props: { method: String, diff --git a/frontend/src/views/system/datasource/DsConfiguration.vue b/frontend/src/views/system/datasource/DsConfiguration.vue index b76c5fbec4..abbc54dd32 100644 --- a/frontend/src/views/system/datasource/DsConfiguration.vue +++ b/frontend/src/views/system/datasource/DsConfiguration.vue @@ -993,6 +993,7 @@ export default { method: 'GET', request: { headers: [{}], + arguments: [], body: { type: '', raw: '', @@ -1009,6 +1010,7 @@ export default { dataPath: '', request: { headers: [], + arguments: [], body: { type: '', raw: '',