From 3f9755df0b9793002774b0becc0ff0b3e4e2f035 Mon Sep 17 00:00:00 2001 From: wangyu <727842003@qq.com> Date: Mon, 20 Feb 2023 14:23:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8D=87=E7=BA=A71.1.1=EF=BC=8C?= =?UTF-8?q?=E8=A7=A3=E5=86=B3get=E4=BC=A0=E5=8F=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 4 +-- rest-proxy-api/pom.xml | 2 +- rest-proxy-core/pom.xml | 2 +- .../support/AbstractParamResolver.java | 8 ++---- .../resolvers/RestParamArgumentResolver.java | 26 ++++++++++++++++--- 5 files changed, 29 insertions(+), 13 deletions(-) diff --git a/pom.xml b/pom.xml index d21236d..53d2c17 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ group.flyfish rest-proxy - 1.1.0 + 1.1.1 8 @@ -22,7 +22,7 @@ 1.8 4.4 2.6 - 1.1.0 + 1.1.1 pom diff --git a/rest-proxy-api/pom.xml b/rest-proxy-api/pom.xml index 469e25c..12e66da 100644 --- a/rest-proxy-api/pom.xml +++ b/rest-proxy-api/pom.xml @@ -5,7 +5,7 @@ group.flyfish rest-proxy - 1.1.0 + 1.1.1 4.0.0 diff --git a/rest-proxy-core/pom.xml b/rest-proxy-core/pom.xml index 9c73175..20e8151 100644 --- a/rest-proxy-core/pom.xml +++ b/rest-proxy-core/pom.xml @@ -5,7 +5,7 @@ group.flyfish rest-proxy - 1.1.0 + 1.1.1 4.0.0 diff --git a/rest-proxy-core/src/main/java/group/flyfish/rest/core/resolver/support/AbstractParamResolver.java b/rest-proxy-core/src/main/java/group/flyfish/rest/core/resolver/support/AbstractParamResolver.java index a8f3b2b..f54af63 100644 --- a/rest-proxy-core/src/main/java/group/flyfish/rest/core/resolver/support/AbstractParamResolver.java +++ b/rest-proxy-core/src/main/java/group/flyfish/rest/core/resolver/support/AbstractParamResolver.java @@ -21,7 +21,7 @@ public abstract class AbstractParamResolver { if (DataUtils.isNotEmpty(builder.getParams())) { String start = builder.getUrl().contains("?") ? "&" : "?"; String params = builder.getParams().entrySet().stream() - .map(entry -> entry.getKey() + "=" + parseValue(entry.getValue())) + .map(entry -> entry.getKey() + "=" + valueOf(entry.getValue())) .collect(Collectors.joining("&")); builder.url(builder.getUrl() + start + params); } @@ -34,14 +34,10 @@ public abstract class AbstractParamResolver { * @param value 值 * @return 结果 */ - private String parseValue(Object value) { + private String valueOf(Object value) { if (value instanceof String) { return (String) value; } - if (value instanceof Iterable) { - Iterable mapped = DataUtils.cast(value); - return String.join(",", mapped); - } if (null != value) { return String.valueOf(value); } diff --git a/rest-proxy-core/src/main/java/group/flyfish/rest/registry/proxy/support/resolvers/RestParamArgumentResolver.java b/rest-proxy-core/src/main/java/group/flyfish/rest/registry/proxy/support/resolvers/RestParamArgumentResolver.java index 271dfb8..49d5307 100644 --- a/rest-proxy-core/src/main/java/group/flyfish/rest/registry/proxy/support/resolvers/RestParamArgumentResolver.java +++ b/rest-proxy-core/src/main/java/group/flyfish/rest/registry/proxy/support/resolvers/RestParamArgumentResolver.java @@ -56,7 +56,7 @@ public class RestParamArgumentResolver implements RestArgumentResolver { if (context.getMethod().isMergeBody()) { context.setBody(name, value); } else { - context.setParam(name, value); + context.setParam(name, parseValue(value)); } } } @@ -79,7 +79,7 @@ public class RestParamArgumentResolver implements RestArgumentResolver { Map values = DataUtils.cast(value); values.forEach((k, v) -> { if (null != v) { - context.setParam(k, String.valueOf(v)); + context.setParam(k, parseValue(v)); } }); } else { @@ -95,10 +95,30 @@ public class RestParamArgumentResolver implements RestArgumentResolver { log.error("【Rest客户端】尝试解析参数时发生异常!获取bean的属性表失败!{}", e.getMessage(), e); } if (null != v) { - context.setParam(propertyDescriptor.getName(), String.valueOf(v)); + context.setParam(propertyDescriptor.getName(), parseValue(v)); } } } } } + + /** + * 解析值 + * + * @param value 值 + * @return 结果 + */ + private String parseValue(Object value) { + if (value instanceof String) { + return (String) value; + } + if (value instanceof Iterable) { + Iterable mapped = DataUtils.cast(value); + return String.join(",", mapped); + } + if (null != value) { + return String.valueOf(value); + } + return ""; + } }