diff --git a/README.md b/README.md
index 1df0174..e7860f5 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@ Rest Proxy组件是本人在长期的系统对接工作中提炼出的一个可
具体是这样的:**写一个interface,定义几个method,然后加上注解,完成!**,在业务里直接调用method即可,不需要写任何实现类!
## REST请求代理(基于Http Interface)
-本组件基于SpringBoot2.7.7构建,支持完整的AutoConfiguraiton。仅需要极少量配置就可以完成配置。当前最新版本为`1.1.5`,新增了标准REST注解。
+本组件基于SpringBoot2.7.7构建,支持完整的AutoConfiguraiton。仅需要极少量配置就可以完成配置。当前最新版本为`1.1.6`,新增了标准REST注解。
### 特性列表
- 无感知自动注入,只需interface + 注解即可轻松完成对接
@@ -29,7 +29,7 @@ Rest Proxy组件是本人在长期的系统对接工作中提炼出的一个可
group.flyfish
rest-proxy-core
- 1.1.5
+ 1.1.6
```
diff --git a/pom.xml b/pom.xml
index 797337c..7b532f6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,7 +13,7 @@
group.flyfish
rest-proxy
- 1.1.5
+ 1.1.6
8
@@ -22,7 +22,7 @@
1.8
4.4
2.6
- 1.1.5
+ 1.1.6
pom
diff --git a/rest-proxy-api/pom.xml b/rest-proxy-api/pom.xml
index 1a89960..c1c9600 100644
--- a/rest-proxy-api/pom.xml
+++ b/rest-proxy-api/pom.xml
@@ -5,7 +5,7 @@
group.flyfish
rest-proxy
- 1.1.5
+ 1.1.6
4.0.0
diff --git a/rest-proxy-core/pom.xml b/rest-proxy-core/pom.xml
index dd00489..b5e8010 100644
--- a/rest-proxy-core/pom.xml
+++ b/rest-proxy-core/pom.xml
@@ -5,7 +5,7 @@
group.flyfish
rest-proxy
- 1.1.5
+ 1.1.6
4.0.0
diff --git a/rest-proxy-core/src/main/java/group/flyfish/rest/core/client/DefaultRestClient.java b/rest-proxy-core/src/main/java/group/flyfish/rest/core/client/DefaultRestClient.java
index 9507df4..3fae245 100644
--- a/rest-proxy-core/src/main/java/group/flyfish/rest/core/client/DefaultRestClient.java
+++ b/rest-proxy-core/src/main/java/group/flyfish/rest/core/client/DefaultRestClient.java
@@ -8,6 +8,7 @@ import group.flyfish.rest.core.factory.HttpClientFactoryBean;
import group.flyfish.rest.core.factory.HttpClientProvider;
import group.flyfish.rest.enums.ResponseType;
import group.flyfish.rest.utils.JacksonUtil;
+import group.flyfish.rest.utils.RestLogUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpEntity;
import org.apache.http.StatusLine;
@@ -272,8 +273,8 @@ final class DefaultRestClient extends RestErrorHandler implements RestClient {
* @return 结果
*/
private T innerExecute() throws IOException {
- log.info("【Rest Invoke】{} {}", request.getMethod(), request.getURI());
try (CloseableHttpResponse response = clientProvider.getClient().execute(request)) {
+ RestLogUtils.log(response);
StatusLine statusLine = response.getStatusLine();
HttpEntity entity = response.getEntity();
if (HttpStatus.valueOf(statusLine.getStatusCode()).isError()) {
diff --git a/rest-proxy-core/src/main/java/group/flyfish/rest/registry/proxy/RestProxyInvoker.java b/rest-proxy-core/src/main/java/group/flyfish/rest/registry/proxy/RestProxyInvoker.java
index ccaf08d..8cc2f87 100644
--- a/rest-proxy-core/src/main/java/group/flyfish/rest/registry/proxy/RestProxyInvoker.java
+++ b/rest-proxy-core/src/main/java/group/flyfish/rest/registry/proxy/RestProxyInvoker.java
@@ -17,6 +17,7 @@ import group.flyfish.rest.registry.proxy.support.UrlCompiler;
import group.flyfish.rest.registry.wrapper.DefaultRestResultMapping;
import group.flyfish.rest.utils.DataUtils;
import group.flyfish.rest.utils.JacksonUtil;
+import group.flyfish.rest.utils.RestLogUtils;
import lombok.Getter;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
@@ -161,8 +162,12 @@ public class RestProxyInvoker implements InvocationHandler, PropertiesConfigurab
client.setClient(registry.getProvider());
// 是否对结果进行映射
boolean map = null != mapping && !method.isBare();
+ // 打印请求
+ RestLogUtils.log(builder);
// 执行请求
Object result = execute(client, method, map);
+ // 打印结果
+ RestLogUtils.log(result);
// 结果映射
return map ? mapping.map(result) : result;
}
diff --git a/rest-proxy-core/src/main/java/group/flyfish/rest/utils/RestLogUtils.java b/rest-proxy-core/src/main/java/group/flyfish/rest/utils/RestLogUtils.java
new file mode 100644
index 0000000..19c6f54
--- /dev/null
+++ b/rest-proxy-core/src/main/java/group/flyfish/rest/utils/RestLogUtils.java
@@ -0,0 +1,73 @@
+package group.flyfish.rest.utils;
+
+import group.flyfish.rest.core.client.RestClientBuilder;
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.http.HttpMessage;
+import org.apache.http.client.methods.CloseableHttpResponse;
+
+import java.util.Arrays;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 日志打印相关
+ *
+ * @author wangyu
+ */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+@Slf4j
+public final class RestLogUtils {
+
+ private static final String LOG_PREFIX = "【Rest Invoke】";
+
+ /**
+ * 打印请求日志
+ *
+ * @param builder 请求信息
+ */
+ public static void log(RestClientBuilder builder) {
+ if (log.isDebugEnabled()) {
+ log.debug("{} {} {}\nRequest Headers: {}\nParameters:{}\nBody:{}", LOG_PREFIX, builder.getMethod(),
+ builder.getUrl(), resolveMap(builder.getHeaders()), resolveMap(builder.getParams()), builder.getBody());
+ } else {
+ log.info("{} {} {}", LOG_PREFIX, builder.getMethod(), builder.getUrl());
+ }
+ }
+
+ /**
+ * 打印响应信息
+ *
+ * @param response 响应信息
+ */
+ public static void log(CloseableHttpResponse response) {
+ if (log.isDebugEnabled()) {
+ log.debug("{} Response Status: {}\nResponse Headers: {}\n", LOG_PREFIX,
+ response.getStatusLine().getStatusCode(), resolveHeaders(response));
+ }
+ }
+
+ /**
+ * 打印结果体
+ *
+ * @param result 结果
+ */
+ public static void log(Object result) {
+ if (log.isDebugEnabled()) {
+ log.debug("{} Response Body:{}", LOG_PREFIX, JacksonUtil.toJson(result).orElse("no body"));
+ }
+ }
+
+ private static String resolveHeaders(HttpMessage message) {
+ return Arrays.stream(message.getAllHeaders())
+ .map(header -> String.join("=", header.getName(), header.getValue()))
+ .collect(Collectors.joining(";"));
+ }
+
+ private static String resolveMap(Map headers) {
+ return headers.entrySet().stream()
+ .map(header -> String.join("=", header.getKey(), String.valueOf(header.getValue())))
+ .collect(Collectors.joining(";"));
+ }
+}
diff --git a/rest-proxy-core/src/test/resources/application.yml b/rest-proxy-core/src/test/resources/application.yml
index 02bddaf..608e766 100644
--- a/rest-proxy-core/src/test/resources/application.yml
+++ b/rest-proxy-core/src/test/resources/application.yml
@@ -7,3 +7,8 @@ rest:
dsep: http://220.194.160.6:8091/jeecg-boot/api
bdmp: http://localhost:8081
damp: http://60.221.255.208:18092/api
+
+debug: true
+logging:
+ level:
+ group.flyfish.rest: debug