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/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: '',