diff --git a/changelog.md b/changelog.md index 2f976f0e..48bf34a5 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,9 @@ # changelog +## 1.13.3 + +- 优化参数绑定 + ## 1.13.2 - 修复json方式请求获取不到参数问题 diff --git a/sop-admin/sop-admin-server/pom.xml b/sop-admin/sop-admin-server/pom.xml index 2ee0eb82..c1e9eeb4 100644 --- a/sop-admin/sop-admin-server/pom.xml +++ b/sop-admin/sop-admin-server/pom.xml @@ -30,7 +30,7 @@ com.gitee.sop sop-registry-api - 1.13.2-SNAPSHOT + 1.13.3-SNAPSHOT diff --git a/sop-common/pom.xml b/sop-common/pom.xml index 4048a6c2..a9236684 100644 --- a/sop-common/pom.xml +++ b/sop-common/pom.xml @@ -5,7 +5,7 @@ 4.0.0 com.gitee.sop sop-common - 1.13.2-SNAPSHOT + 1.13.3-SNAPSHOT pom diff --git a/sop-common/sop-gateway-common/pom.xml b/sop-common/sop-gateway-common/pom.xml index de238aee..cfc97ff7 100644 --- a/sop-common/sop-gateway-common/pom.xml +++ b/sop-common/sop-gateway-common/pom.xml @@ -5,11 +5,11 @@ com.gitee.sop sop-common - 1.13.2-SNAPSHOT + 1.13.3-SNAPSHOT ../pom.xml sop-gateway-common - 1.13.2-SNAPSHOT + 1.13.3-SNAPSHOT jar sop-gateway-common diff --git a/sop-common/sop-registry-api/pom.xml b/sop-common/sop-registry-api/pom.xml index 2e96c9ea..1cf666bb 100644 --- a/sop-common/sop-registry-api/pom.xml +++ b/sop-common/sop-registry-api/pom.xml @@ -5,7 +5,7 @@ 4.0.0 com.gitee.sop sop-registry-api - 1.13.2-SNAPSHOT + 1.13.3-SNAPSHOT UTF-8 diff --git a/sop-common/sop-service-common/pom.xml b/sop-common/sop-service-common/pom.xml index 27d89f62..02d5ddd5 100644 --- a/sop-common/sop-service-common/pom.xml +++ b/sop-common/sop-service-common/pom.xml @@ -6,11 +6,11 @@ com.gitee.sop sop-common - 1.13.2-SNAPSHOT + 1.13.3-SNAPSHOT ../pom.xml sop-service-common - 1.13.2-SNAPSHOT + 1.13.3-SNAPSHOT jar sop-service-common diff --git a/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/bean/OpenContextImpl.java b/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/bean/OpenContextImpl.java index 138a4082..56aefeec 100644 --- a/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/bean/OpenContextImpl.java +++ b/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/bean/OpenContextImpl.java @@ -17,18 +17,23 @@ import static com.gitee.sop.servercommon.bean.ParamNames.VERSION_NAME; * @author tanghc */ public class OpenContextImpl implements OpenContext { - private JSONObject jsonObject; + private JSONObject rootJsonObject; private T bizObject; - public OpenContextImpl(JSONObject jsonObject, Class bizClass) { - this.jsonObject = jsonObject; - JSONObject bizJsonObj = this.jsonObject.getJSONObject(BIZ_CONTENT_NAME); - bizObject = (bizClass == null || bizJsonObj == null) ? null : (T) bizJsonObj.toJavaObject(bizClass); + public OpenContextImpl(JSONObject rootJsonObject, Class bizClass) { + this.rootJsonObject = rootJsonObject; + if (bizClass != null) { + JSONObject bizJsonObj = this.rootJsonObject.getJSONObject(BIZ_CONTENT_NAME); + if (bizJsonObj == null) { + bizJsonObj = rootJsonObject; + } + bizObject = (T) bizJsonObj.toJavaObject(bizClass); + } } @Override public String getAppId() { - return jsonObject.getString(APP_KEY_NAME); + return rootJsonObject.getString(APP_KEY_NAME); } @Override @@ -38,36 +43,36 @@ public class OpenContextImpl implements OpenContext { @Override public String getBizContent() { - return jsonObject.getString(BIZ_CONTENT_NAME); + return rootJsonObject.getString(BIZ_CONTENT_NAME); } @Override public String getCharset() { - return jsonObject.getString(CHARSET_NAME); + return rootJsonObject.getString(CHARSET_NAME); } @Override public String getMethod() { - return jsonObject.getString(API_NAME); + return rootJsonObject.getString(API_NAME); } @Override public String getVersion() { - return jsonObject.getString(VERSION_NAME); + return rootJsonObject.getString(VERSION_NAME); } @Override public String getFormat() { - return jsonObject.getString(FORMAT_NAME); + return rootJsonObject.getString(FORMAT_NAME); } @Override public String getSignType() { - return jsonObject.getString(SIGN_TYPE_NAME); + return rootJsonObject.getString(SIGN_TYPE_NAME); } @Override public Date getTimestamp() { - return jsonObject.getDate(TIMESTAMP_NAME); + return rootJsonObject.getDate(TIMESTAMP_NAME); } } diff --git a/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/util/OpenUtil.java b/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/util/OpenUtil.java index 10f590c1..b6f75d7c 100644 --- a/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/util/OpenUtil.java +++ b/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/util/OpenUtil.java @@ -5,9 +5,9 @@ import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; +import org.springframework.http.MediaType; import javax.servlet.http.HttpServletRequest; -import java.io.IOException; import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -19,39 +19,37 @@ import java.util.Set; @Slf4j public class OpenUtil { - private static final String CONTENT_TYPE_URLENCODED = "application/x-www-form-urlencoded"; - private static final String CONTENT_TYPE_JSON = "application/json"; - private static final String CONTENT_TYPE_TEXT = "text/plain"; - private static final String UTF8 = "UTF-8"; /** - * 从request中获取参数。如果提交方式是application/x-www-form-urlencoded,则组装成json格式。 + * 获取request中的参数 * * @param request request对象 - * @return 返回json - * @throws IOException + * @return 返回JSONObject */ public static JSONObject getRequestParams(HttpServletRequest request) { - String requestJson = "{}"; String contentType = request.getContentType(); - if (StringUtils.isBlank(contentType)) { - return new JSONObject(); + if (contentType == null) { + contentType = ""; } contentType = contentType.toLowerCase(); - if (StringUtils.containsAny(contentType, CONTENT_TYPE_JSON, CONTENT_TYPE_TEXT)) { + JSONObject jsonObject; + if (StringUtils.containsAny(contentType, MediaType.APPLICATION_JSON_VALUE, MediaType.TEXT_PLAIN_VALUE)) { try { - requestJson = IOUtils.toString(request.getInputStream(), UTF8); - } catch (IOException e) { + String requestJson = IOUtils.toString(request.getInputStream(), UTF8); + jsonObject = JSON.parseObject(requestJson); + } catch (Exception e) { + jsonObject = new JSONObject(); log.error("获取文本数据流失败", e); } - } else if (StringUtils.containsAny(contentType, CONTENT_TYPE_URLENCODED)) { + } else { Map params = convertRequestParamsToMap(request); - requestJson = JSON.toJSONString(params); + jsonObject = new JSONObject(params); } - return JSON.parseObject(requestJson); + return jsonObject; } + /** * request中的参数转换成map * @@ -60,7 +58,7 @@ public class OpenUtil { */ public static Map convertRequestParamsToMap(HttpServletRequest request) { Map paramMap = request.getParameterMap(); - if(paramMap == null || paramMap.isEmpty()) { + if (paramMap == null || paramMap.isEmpty()) { return Collections.emptyMap(); } Map retMap = new HashMap(paramMap.size()); diff --git a/sop-example/sop-auth/pom.xml b/sop-example/sop-auth/pom.xml index f705c20e..6b44d096 100644 --- a/sop-example/sop-auth/pom.xml +++ b/sop-example/sop-auth/pom.xml @@ -26,7 +26,7 @@ com.gitee.sop sop-service-common - 1.13.2-SNAPSHOT + 1.13.3-SNAPSHOT org.springframework.cloud diff --git a/sop-example/sop-book/sop-book-web/pom.xml b/sop-example/sop-book/sop-book-web/pom.xml index a01339ba..992a4668 100644 --- a/sop-example/sop-book/sop-book-web/pom.xml +++ b/sop-example/sop-book/sop-book-web/pom.xml @@ -24,7 +24,7 @@ com.gitee.sop sop-service-common - 1.13.2-SNAPSHOT + 1.13.3-SNAPSHOT com.gitee.sop diff --git a/sop-example/sop-easyopen/pom.xml b/sop-example/sop-easyopen/pom.xml index 9198b804..67a58e39 100644 --- a/sop-example/sop-easyopen/pom.xml +++ b/sop-example/sop-easyopen/pom.xml @@ -29,7 +29,7 @@ com.gitee.sop sop-service-common - 1.13.2-SNAPSHOT + 1.13.3-SNAPSHOT org.springframework.cloud diff --git a/sop-example/sop-springmvc/pom.xml b/sop-example/sop-springmvc/pom.xml index b7ad30f7..d840982e 100644 --- a/sop-example/sop-springmvc/pom.xml +++ b/sop-example/sop-springmvc/pom.xml @@ -20,7 +20,7 @@ com.gitee.sop sop-service-common - 1.13.2-SNAPSHOT + 1.13.3-SNAPSHOT diff --git a/sop-example/sop-story/sop-story-web/pom.xml b/sop-example/sop-story/sop-story-web/pom.xml index 1f09cd60..590fbd13 100644 --- a/sop-example/sop-story/sop-story-web/pom.xml +++ b/sop-example/sop-story/sop-story-web/pom.xml @@ -24,7 +24,7 @@ com.gitee.sop sop-service-common - 1.13.2-SNAPSHOT + 1.13.3-SNAPSHOT com.gitee.sop diff --git a/sop-example/sop-story/sop-story-web/src/main/java/com/gitee/sop/storyweb/controller/AlipayController.java b/sop-example/sop-story/sop-story-web/src/main/java/com/gitee/sop/storyweb/controller/AlipayController.java index d620c0ed..e9f37277 100644 --- a/sop-example/sop-story/sop-story-web/src/main/java/com/gitee/sop/storyweb/controller/AlipayController.java +++ b/sop-example/sop-story/sop-story-web/src/main/java/com/gitee/sop/storyweb/controller/AlipayController.java @@ -64,6 +64,13 @@ public class AlipayController { return story; } + // 忽略验证 + @ApiMapping(value = "story.get", version = "2.1", ignoreValidate = true) + public Story getStory21(Story story) { + story.setName(story.getName() + ", story.get2.1, ignoreValidate = true"); + return story; + } + // http://localhost:2222/getStory2 // 遗留接口具备开放平台能力 @ApiAbility diff --git a/sop-example/sop-story/sop-story-web/src/main/java/com/gitee/sop/storyweb/controller/TraditionalWebappController.java b/sop-example/sop-story/sop-story-web/src/main/java/com/gitee/sop/storyweb/controller/TraditionalWebappController.java index a2ede01a..fd48dddb 100644 --- a/sop-example/sop-story/sop-story-web/src/main/java/com/gitee/sop/storyweb/controller/TraditionalWebappController.java +++ b/sop-example/sop-story/sop-story-web/src/main/java/com/gitee/sop/storyweb/controller/TraditionalWebappController.java @@ -45,7 +45,7 @@ public class TraditionalWebappController { } // http://localhost:8081/rest/food/getFoodByObj?id=2 - @ApiMapping(value = "ggetFoodByObj", method = RequestMethod.GET) + @ApiMapping(value = "getFoodByObj", method = RequestMethod.GET) public Food getFoodByObj(Food food) { return food; } diff --git a/sop-gateway/pom.xml b/sop-gateway/pom.xml index c6fab691..c398fa5f 100644 --- a/sop-gateway/pom.xml +++ b/sop-gateway/pom.xml @@ -23,7 +23,7 @@ com.gitee.sop sop-gateway-common - 1.13.2-SNAPSHOT + 1.13.3-SNAPSHOT