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