From 151d621d04c068a5be76e3cb7cb85e4048938762 Mon Sep 17 00:00:00 2001
From: WenG <450292408@qq.com>
Date: Wed, 2 Jun 2021 23:36:00 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BA=86=E8=AF=B7=E6=B1=82?=
=?UTF-8?q?=E5=A4=B4=E3=80=81=E5=8F=82=E6=95=B0=E5=92=8C=E5=93=8D=E5=BA=94?=
=?UTF-8?q?=E5=A4=B4=E5=8F=82=E6=95=B0=E7=9A=84=E6=8E=A7=E5=88=B6=E8=BF=87?=
=?UTF-8?q?=E6=BB=A4=E5=99=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 3 +-
.../MongoRouteDefinitionRepository.java | 88 ++++++-
.../dao/route/request/IRequestHeaderDao.java | 2 +-
.../route/request/IRequestParameterDao.java | 3 +-
.../dao/route/request/IResponseHeaderDao.java | 22 ++
...ava => FilterRequestResponseTypeEnum.java} | 7 +-
.../filter/local/CommonFiltersDefinition.java | 107 +++++++-
.../route/request/RequestHeaderHandler.java | 76 ++----
.../request/RequestParameterHandler.java | 76 ++----
.../route/request/ResponseHeaderHandler.java | 99 ++++++++
.../pojo/route/request/RequestHeader.java | 4 +-
.../pojo/route/request/RequestParameter.java | 1 -
.../pojo/route/request/ResponseHeader.java | 60 +++++
.../route/request/RequestHeaderRouter.java | 5 +-
.../route/request/RequestParameterRouter.java | 7 +-
.../route/request/ResponseHeaderRouter.java | 37 +++
src/main/resources/application-dev.yml | 2 +-
.../wg/assets/layui/modules/restajax.js | 1 -
src/main/resources/static/wg/home.html | 12 +-
.../resources/static/wg/route/route/list.html | 41 +++-
.../wg/route/route/request-header/list.html | 231 ++++++++++++++++++
.../wg/route/route/request-header/save.html | 114 +++++++++
.../route/route/request-parameter/list.html | 227 +++++++++++++++++
.../route/route/request-parameter/save.html | 112 +++++++++
.../wg/route/route/response-header/list.html | 231 ++++++++++++++++++
.../wg/route/route/response-header/save.html | 113 +++++++++
26 files changed, 1531 insertions(+), 150 deletions(-)
create mode 100644 src/main/java/ink/wgink/gateway/dao/route/request/IResponseHeaderDao.java
rename src/main/java/ink/wgink/gateway/enums/{FilterRequestTypeEnum.java => FilterRequestResponseTypeEnum.java} (76%)
create mode 100644 src/main/java/ink/wgink/gateway/handler/route/request/ResponseHeaderHandler.java
create mode 100644 src/main/java/ink/wgink/gateway/pojo/route/request/ResponseHeader.java
create mode 100644 src/main/java/ink/wgink/gateway/router/route/request/ResponseHeaderRouter.java
create mode 100644 src/main/resources/static/wg/route/route/request-header/list.html
create mode 100644 src/main/resources/static/wg/route/route/request-header/save.html
create mode 100644 src/main/resources/static/wg/route/route/request-parameter/list.html
create mode 100644 src/main/resources/static/wg/route/route/request-parameter/save.html
create mode 100644 src/main/resources/static/wg/route/route/response-header/list.html
create mode 100644 src/main/resources/static/wg/route/route/response-header/save.html
diff --git a/pom.xml b/pom.xml
index 78c4226..e13b769 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.4.2
+ 2.5.0
ink.wgink
@@ -30,6 +30,7 @@
org.springframework.cloud
spring-cloud-starter-gateway
+ 3.0.3
org.springframework.boot
diff --git a/src/main/java/ink/wgink/gateway/component/MongoRouteDefinitionRepository.java b/src/main/java/ink/wgink/gateway/component/MongoRouteDefinitionRepository.java
index 9a072b6..298dd56 100644
--- a/src/main/java/ink/wgink/gateway/component/MongoRouteDefinitionRepository.java
+++ b/src/main/java/ink/wgink/gateway/component/MongoRouteDefinitionRepository.java
@@ -1,17 +1,25 @@
package ink.wgink.gateway.component;
-import ink.wgink.gateway.consts.ISystemConst;
import ink.wgink.gateway.dao.route.IRouteDao;
+import ink.wgink.gateway.dao.route.request.IRequestHeaderDao;
+import ink.wgink.gateway.dao.route.request.IRequestParameterDao;
+import ink.wgink.gateway.dao.route.request.IResponseHeaderDao;
+import ink.wgink.gateway.enums.FilterRequestResponseTypeEnum;
import ink.wgink.gateway.filter.local.CommonFiltersDefinition;
import ink.wgink.gateway.pojo.route.Route;
+import ink.wgink.gateway.pojo.route.request.RequestHeader;
+import ink.wgink.gateway.pojo.route.request.RequestParameter;
+import ink.wgink.gateway.pojo.route.request.ResponseHeader;
import ink.wgink.gateway.util.UUIDUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.cloud.gateway.filter.FilterDefinition;
-import org.springframework.cloud.gateway.filter.factory.*;
import org.springframework.cloud.gateway.handler.predicate.PredicateDefinition;
import org.springframework.cloud.gateway.handler.predicate.RoutePredicateFactory;
import org.springframework.cloud.gateway.route.RouteDefinition;
import org.springframework.cloud.gateway.route.RouteDefinitionRepository;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Component;
import org.springframework.web.util.UriComponentsBuilder;
import reactor.core.publisher.Flux;
@@ -35,10 +43,12 @@ import java.util.Map;
@Component
public class MongoRouteDefinitionRepository implements RouteDefinitionRepository {
- public IRouteDao routeDao;
+ private IRouteDao routeDao;
+ private MongoTemplate mongoTemplate;
- public MongoRouteDefinitionRepository(IRouteDao routeDao) {
+ public MongoRouteDefinitionRepository(IRouteDao routeDao, MongoTemplate mongoTemplate) {
this.routeDao = routeDao;
+ this.mongoTemplate = mongoTemplate;
}
@Override
@@ -107,7 +117,77 @@ public class MongoRouteDefinitionRepository implements RouteDefinitionRepository
if (!StringUtils.isBlank(route.getSetPath())) {
filterDefinitions.add(commonFiltersDefinition.setPath(route));
}
+ requestHeaderFilter(filterDefinitions, commonFiltersDefinition, route);
+ requestParameterFilter(filterDefinitions, commonFiltersDefinition, route);
+ responseHeaderFilter(filterDefinitions, commonFiltersDefinition, route);
return filterDefinitions;
}
+ /**
+ * 请求头过滤器
+ *
+ * @param filterDefinitions
+ * @param commonFiltersDefinition
+ */
+ private void requestHeaderFilter(List filterDefinitions, CommonFiltersDefinition commonFiltersDefinition, Route route) {
+ // 添加请求头参数过滤器
+ List addRequestHeaderList = mongoTemplate.find(new Query().addCriteria(Criteria.where("routeId").is(route.getUuid()).and("type").is(FilterRequestResponseTypeEnum.ADD.getValue())), RequestHeader.class, IRequestHeaderDao.COLLECTION_NAME);
+ if (!addRequestHeaderList.isEmpty()) {
+ filterDefinitions.add(commonFiltersDefinition.addRequestHeader(addRequestHeaderList));
+ }
+ // 设置请求头参数过滤器
+ List setRequestHeaderList = mongoTemplate.find(new Query().addCriteria(Criteria.where("routeId").is(route.getUuid()).and("type").is(FilterRequestResponseTypeEnum.SET.getValue())), RequestHeader.class, IRequestHeaderDao.COLLECTION_NAME);
+ if (!setRequestHeaderList.isEmpty()) {
+ filterDefinitions.add(commonFiltersDefinition.setRequestHeader(setRequestHeaderList));
+ }
+ // 删除请求头参数过滤器
+ List removeRequestHeaderList = mongoTemplate.find(new Query().addCriteria(Criteria.where("routeId").is(route.getUuid()).and("type").is(FilterRequestResponseTypeEnum.REMOVE.getValue())), RequestHeader.class, IRequestHeaderDao.COLLECTION_NAME);
+ if (!removeRequestHeaderList.isEmpty()) {
+ filterDefinitions.add(commonFiltersDefinition.removeRequestHeader(removeRequestHeaderList));
+ }
+ }
+
+ /**
+ * 请求参数过滤器
+ *
+ * @param filterDefinitions
+ * @param commonFiltersDefinition
+ */
+ private void requestParameterFilter(List filterDefinitions, CommonFiltersDefinition commonFiltersDefinition, Route route) {
+ // 添加请求参数过滤器
+ List addRequestParameterList = mongoTemplate.find(new Query().addCriteria(Criteria.where("routeId").is(route.getUuid()).and("type").is(FilterRequestResponseTypeEnum.ADD.getValue())), RequestParameter.class, IRequestParameterDao.COLLECTION_NAME);
+ if (!addRequestParameterList.isEmpty()) {
+ filterDefinitions.add(commonFiltersDefinition.addRequestParameter(addRequestParameterList));
+ }
+ // 删除请求参数过滤器
+ List removeRequestParameterList = mongoTemplate.find(new Query().addCriteria(Criteria.where("routeId").is(route.getUuid()).and("type").is(FilterRequestResponseTypeEnum.REMOVE.getValue())), RequestParameter.class, IRequestParameterDao.COLLECTION_NAME);
+ if (!addRequestParameterList.isEmpty()) {
+ filterDefinitions.add(commonFiltersDefinition.removeRequestParameter(removeRequestParameterList));
+ }
+ }
+
+ /**
+ * 响应头过滤器
+ *
+ * @param filterDefinitions
+ * @param commonFiltersDefinition
+ */
+ private void responseHeaderFilter(List filterDefinitions, CommonFiltersDefinition commonFiltersDefinition, Route route) {
+ // 添加请求头参数过滤器
+ List addResponseHeaderList = mongoTemplate.find(new Query().addCriteria(Criteria.where("routeId").is(route.getUuid()).and("type").is(FilterRequestResponseTypeEnum.ADD.getValue())), ResponseHeader.class, IResponseHeaderDao.COLLECTION_NAME);
+ if (!addResponseHeaderList.isEmpty()) {
+ filterDefinitions.add(commonFiltersDefinition.addResponseHeader(addResponseHeaderList));
+ }
+ // 设置请求头参数过滤器
+ List setResponseHeaderList = mongoTemplate.find(new Query().addCriteria(Criteria.where("routeId").is(route.getUuid()).and("type").is(FilterRequestResponseTypeEnum.SET.getValue())), ResponseHeader.class, IResponseHeaderDao.COLLECTION_NAME);
+ if (!setResponseHeaderList.isEmpty()) {
+ filterDefinitions.add(commonFiltersDefinition.setResponseHeader(setResponseHeaderList));
+ }
+ // 删除请求头参数过滤器
+ List removeResponseHeaderList = mongoTemplate.find(new Query().addCriteria(Criteria.where("routeId").is(route.getUuid()).and("type").is(FilterRequestResponseTypeEnum.REMOVE.getValue())), ResponseHeader.class, IResponseHeaderDao.COLLECTION_NAME);
+ if (!removeResponseHeaderList.isEmpty()) {
+ filterDefinitions.add(commonFiltersDefinition.removeResponseHeader(removeResponseHeaderList));
+ }
+ }
+
}
diff --git a/src/main/java/ink/wgink/gateway/dao/route/request/IRequestHeaderDao.java b/src/main/java/ink/wgink/gateway/dao/route/request/IRequestHeaderDao.java
index a3c85eb..0ce4248 100644
--- a/src/main/java/ink/wgink/gateway/dao/route/request/IRequestHeaderDao.java
+++ b/src/main/java/ink/wgink/gateway/dao/route/request/IRequestHeaderDao.java
@@ -17,6 +17,6 @@ import org.springframework.stereotype.Repository;
@Repository
public interface IRequestHeaderDao extends ReactiveMongoRepository {
- String COLLECTION_NAME = "sys_request_header";
+ String COLLECTION_NAME = "route_request_header";
}
diff --git a/src/main/java/ink/wgink/gateway/dao/route/request/IRequestParameterDao.java b/src/main/java/ink/wgink/gateway/dao/route/request/IRequestParameterDao.java
index 79008b8..6fff99e 100644
--- a/src/main/java/ink/wgink/gateway/dao/route/request/IRequestParameterDao.java
+++ b/src/main/java/ink/wgink/gateway/dao/route/request/IRequestParameterDao.java
@@ -1,6 +1,5 @@
package ink.wgink.gateway.dao.route.request;
-import ink.wgink.gateway.pojo.route.request.RequestHeader;
import ink.wgink.gateway.pojo.route.request.RequestParameter;
import org.springframework.data.mongodb.repository.ReactiveMongoRepository;
import org.springframework.stereotype.Repository;
@@ -18,6 +17,6 @@ import org.springframework.stereotype.Repository;
@Repository
public interface IRequestParameterDao extends ReactiveMongoRepository {
- String COLLECTION_NAME = "sys_request_parameter";
+ String COLLECTION_NAME = "route_request_parameter";
}
diff --git a/src/main/java/ink/wgink/gateway/dao/route/request/IResponseHeaderDao.java b/src/main/java/ink/wgink/gateway/dao/route/request/IResponseHeaderDao.java
new file mode 100644
index 0000000..aa26a84
--- /dev/null
+++ b/src/main/java/ink/wgink/gateway/dao/route/request/IResponseHeaderDao.java
@@ -0,0 +1,22 @@
+package ink.wgink.gateway.dao.route.request;
+
+import ink.wgink.gateway.pojo.route.request.ResponseHeader;
+import org.springframework.data.mongodb.repository.ReactiveMongoRepository;
+import org.springframework.stereotype.Repository;
+
+/**
+ * When you feel like quitting. Think about why you started
+ * 当你想要放弃的时候,想想当初你为何开始
+ *
+ * @ClassName: IResponseHeaderDao
+ * @Description: 响应头
+ * @Author: WangGeng
+ * @Date: 2021/5/29 22:21
+ * @Version: 1.0
+ **/
+@Repository
+public interface IResponseHeaderDao extends ReactiveMongoRepository {
+
+ String COLLECTION_NAME = "route_response_header";
+
+}
diff --git a/src/main/java/ink/wgink/gateway/enums/FilterRequestTypeEnum.java b/src/main/java/ink/wgink/gateway/enums/FilterRequestResponseTypeEnum.java
similarity index 76%
rename from src/main/java/ink/wgink/gateway/enums/FilterRequestTypeEnum.java
rename to src/main/java/ink/wgink/gateway/enums/FilterRequestResponseTypeEnum.java
index 3b61f82..189add5 100644
--- a/src/main/java/ink/wgink/gateway/enums/FilterRequestTypeEnum.java
+++ b/src/main/java/ink/wgink/gateway/enums/FilterRequestResponseTypeEnum.java
@@ -10,14 +10,15 @@ package ink.wgink.gateway.enums;
* @Date: 2021/5/30 16:54
* @Version: 1.0
**/
-public enum FilterRequestTypeEnum {
+public enum FilterRequestResponseTypeEnum {
ADD("add", "添加"),
- SET("set", "设置");
+ SET("set", "设置(替换)"),
+ REMOVE("remove", "移除");
private String value;
private String summary;
- FilterRequestTypeEnum(String value, String summary) {
+ FilterRequestResponseTypeEnum(String value, String summary) {
this.value = value;
this.summary = summary;
}
diff --git a/src/main/java/ink/wgink/gateway/filter/local/CommonFiltersDefinition.java b/src/main/java/ink/wgink/gateway/filter/local/CommonFiltersDefinition.java
index 5a6dabf..7711a02 100644
--- a/src/main/java/ink/wgink/gateway/filter/local/CommonFiltersDefinition.java
+++ b/src/main/java/ink/wgink/gateway/filter/local/CommonFiltersDefinition.java
@@ -4,6 +4,7 @@ import ink.wgink.gateway.consts.ISystemConst;
import ink.wgink.gateway.pojo.route.Route;
import ink.wgink.gateway.pojo.route.request.RequestHeader;
import ink.wgink.gateway.pojo.route.request.RequestParameter;
+import ink.wgink.gateway.pojo.route.request.ResponseHeader;
import org.springframework.cloud.gateway.filter.FilterDefinition;
import org.springframework.cloud.gateway.filter.factory.RewriteLocationResponseHeaderGatewayFilterFactory;
import org.springframework.cloud.gateway.filter.factory.RewritePathGatewayFilterFactory;
@@ -28,7 +29,6 @@ public class CommonFiltersDefinition {
/**
* 请求头参数过滤器
*
- * @param route
* @param requestHeaders
* @return
*/
@@ -44,6 +44,41 @@ public class CommonFiltersDefinition {
return addRequestHeader;
}
+ /**
+ * 请求头参数过滤器
+ *
+ * @param requestHeaders
+ * @return
+ */
+ public FilterDefinition setRequestHeader(List requestHeaders) {
+ FilterDefinition setRequestHeader = new FilterDefinition();
+ Map setRequestHeaderMap = new HashMap<>(requestHeaders.size() * 2);
+ for (RequestHeader requestHeader : requestHeaders) {
+ setRequestHeaderMap.put("name", requestHeader.getName());
+ setRequestHeaderMap.put("value", requestHeader.getValue());
+ }
+ setRequestHeader.setArgs(setRequestHeaderMap);
+ setRequestHeader.setName("SetRequestHeader");
+ return setRequestHeader;
+ }
+
+ /**
+ * 请求头参数过滤器
+ *
+ * @param requestHeaders
+ * @return
+ */
+ public FilterDefinition removeRequestHeader(List requestHeaders) {
+ FilterDefinition removeRequestHeader = new FilterDefinition();
+ Map removeRequestHeaderMap = new HashMap<>(requestHeaders.size() * 2);
+ for (RequestHeader requestHeader : requestHeaders) {
+ removeRequestHeaderMap.put("name", requestHeader.getName());
+ }
+ removeRequestHeader.setArgs(removeRequestHeaderMap);
+ removeRequestHeader.setName("RemoveRequestHeader");
+ return removeRequestHeader;
+ }
+
/**
* 请求参数过滤器
*
@@ -62,6 +97,76 @@ public class CommonFiltersDefinition {
return addRequestParameter;
}
+ /**
+ * 请求参数过滤器
+ *
+ * @param requestParameters
+ * @return
+ */
+ public FilterDefinition removeRequestParameter(List requestParameters) {
+ FilterDefinition removeRequestParameter = new FilterDefinition();
+ Map removeRequestParameterMap = new HashMap<>(requestParameters.size() * 2);
+ for (RequestParameter requestParameter : requestParameters) {
+ removeRequestParameterMap.put("name", requestParameter.getName());
+ }
+ removeRequestParameter.setArgs(removeRequestParameterMap);
+ removeRequestParameter.setName("RemoveRequestParameter");
+ return removeRequestParameter;
+ }
+
+ /**
+ * 响应头参数过滤器
+ *
+ * @param responseHeaders
+ * @return
+ */
+ public FilterDefinition addResponseHeader(List responseHeaders) {
+ FilterDefinition addResponseHeader = new FilterDefinition();
+ Map addResponseHeaderMap = new HashMap<>(responseHeaders.size() * 2);
+ for (ResponseHeader responseHeader : responseHeaders) {
+ addResponseHeaderMap.put("name", responseHeader.getName());
+ addResponseHeaderMap.put("value", responseHeader.getValue());
+ }
+ addResponseHeader.setArgs(addResponseHeaderMap);
+ addResponseHeader.setName("AddResponseHeader");
+ return addResponseHeader;
+ }
+
+ /**
+ * 响应头参数过滤器
+ *
+ * @param responseHeaders
+ * @return
+ */
+ public FilterDefinition setResponseHeader(List responseHeaders) {
+ FilterDefinition setResponseHeader = new FilterDefinition();
+ Map setResponseHeaderMap = new HashMap<>(responseHeaders.size() * 2);
+ for (ResponseHeader responseHeader : responseHeaders) {
+ setResponseHeaderMap.put("name", responseHeader.getName());
+ setResponseHeaderMap.put("value", responseHeader.getValue());
+ }
+ setResponseHeader.setArgs(setResponseHeaderMap);
+ setResponseHeader.setName("SetResponseHeader");
+ return setResponseHeader;
+ }
+
+ /**
+ * 响应头参数过滤器
+ *
+ * @param responseHeaders
+ * @return
+ */
+ public FilterDefinition removeResponseHeader(List responseHeaders) {
+ FilterDefinition removeResponseHeader = new FilterDefinition();
+ Map removeResponseHeaderMap = new HashMap<>(responseHeaders.size() * 2);
+ for (ResponseHeader responseHeader : responseHeaders) {
+ removeResponseHeaderMap.put("name", responseHeader.getName());
+ }
+ removeResponseHeader.setArgs(removeResponseHeaderMap);
+ removeResponseHeader.setName("RemoveResponseHeader");
+ return removeResponseHeader;
+ }
+
/**
* 重写过滤器,将路径中的gw删除,暂时无用
*
diff --git a/src/main/java/ink/wgink/gateway/handler/route/request/RequestHeaderHandler.java b/src/main/java/ink/wgink/gateway/handler/route/request/RequestHeaderHandler.java
index 91144fd..d7889a2 100644
--- a/src/main/java/ink/wgink/gateway/handler/route/request/RequestHeaderHandler.java
+++ b/src/main/java/ink/wgink/gateway/handler/route/request/RequestHeaderHandler.java
@@ -1,12 +1,12 @@
package ink.wgink.gateway.handler.route.request;
import ink.wgink.gateway.dao.route.request.IRequestHeaderDao;
+import ink.wgink.gateway.enums.FilterRequestResponseTypeEnum;
+import ink.wgink.gateway.exception.ParamsException;
import ink.wgink.gateway.exception.SearchException;
import ink.wgink.gateway.handler.BaseHandler;
import ink.wgink.gateway.pojo.result.SuccessResult;
import ink.wgink.gateway.pojo.route.request.RequestHeader;
-import ink.wgink.gateway.pojo.route.request.RequestParameter;
-import ink.wgink.gateway.pojo.routetype.RouteType;
import ink.wgink.gateway.util.RequestFieldCheckUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.data.domain.Example;
@@ -45,14 +45,17 @@ public class RequestHeaderHandler extends BaseHandler {
Mono requestHeaderMono = serverRequest.bodyToMono(RequestHeader.class);
return requestHeaderMono.flatMap(requestHeader -> {
RequestFieldCheckUtil.check(requestHeader);
+ if (!StringUtils.equals(FilterRequestResponseTypeEnum.REMOVE.getValue(), requestHeader.getType()) && StringUtils.isBlank(requestHeader.getValue())) {
+ return Mono.error(new ParamsException("值不能为空"));
+ }
setSave(requestHeader);
- RouteType routeTypeExample = new RouteType();
- routeTypeExample.setTitle(requestHeader.getName().trim());
+ RequestHeader requestHeaderExample = new RequestHeader();
+ requestHeaderExample.setName(requestHeader.getName().trim());
ExampleMatcher exampleMatcher = ExampleMatcher.matching().withMatcher("name", ExampleMatcher.GenericPropertyMatcher::exact).withIgnoreCase("id");
- Example example = Example.of(routeTypeExample, exampleMatcher);
+ Example example = Example.of(requestHeaderExample, exampleMatcher);
return requestHeaderDao.findOne(example).flatMap(
- r -> Mono.error(new SearchException("Header已经存在"))
+ r -> Mono.error(new SearchException("参数已经存在"))
).switchIfEmpty(requestHeaderDao.save(requestHeader));
}).then(ServerResponse.ok().contentType(MediaType.APPLICATION_JSON_UTF8).body(Flux.just(new SuccessResult()), SuccessResult.class));
}
@@ -63,67 +66,26 @@ public class RequestHeaderHandler extends BaseHandler {
return requestHeaderDao.findAllById(idList).flatMap(requestHeader -> requestHeaderDao.delete(requestHeader)).then(ServerResponse.ok().contentType(MediaType.APPLICATION_JSON_UTF8).body(Mono.just(new SuccessResult()), SuccessResult.class));
}
- public Mono update(ServerRequest serverRequest) {
- String id = serverRequest.pathVariable("id");
- Mono requestHeaderMono = serverRequest.bodyToMono(RequestHeader.class);
-
- // 查询ID是否存在
- return requestHeaderDao.findById(id).flatMap(requestHeader -> {
- setUpdate(requestHeader);
- return requestHeaderMono.flatMap(rh -> {
- RequestFieldCheckUtil.check(rh);
- requestHeader.setRouteId(rh.getRouteId());
- requestHeader.setType(rh.getType());
- requestHeader.setName(rh.getName());
- requestHeader.setValue(rh.getValue());
-
- RequestHeader requestHeaderExample = new RequestHeader();
- requestHeaderExample.setRouteId(rh.getRouteId());
- requestHeaderExample.setName(rh.getName());
- ExampleMatcher exampleMatcher = ExampleMatcher.matching()
- .withMatcher("routeId", ExampleMatcher.GenericPropertyMatcher::exact)
- .withMatcher("name", ExampleMatcher.GenericPropertyMatcher::exact)
- .withIgnoreCase("id");
- Example example = Example.of(requestHeaderExample, exampleMatcher);
- // 查询Name是否存在
- return requestHeaderDao.findOne(example).flatMap(erh -> {
- RequestHeader existRouteHeader = (RequestHeader) erh;
- // 如果已经存在
- if (!StringUtils.equals(existRouteHeader.getUuid(), id)) {
- return Mono.error(new SearchException("参数已经存在"));
- }
- return requestHeaderDao.save(requestHeader);
- }).switchIfEmpty(requestHeaderDao.save(requestHeader));
- });
- }).switchIfEmpty(ServerResponse.notFound().build()).then(ServerResponse.ok().contentType(MediaType.APPLICATION_JSON_UTF8).body(Mono.just(new SuccessResult()), SuccessResult.class));
- }
-
public Mono list(ServerRequest serverRequest) {
String routeId = serverRequest.pathVariable("routeId");
Optional keywords = serverRequest.queryParam("keywords");
Optional type = serverRequest.queryParam("type");
- RequestParameter requestParameter = new RequestParameter();
- requestParameter.setRouteId(routeId);
+ RequestHeader requestHeaderExample = new RequestHeader();
+ requestHeaderExample.setRouteId(routeId);
ExampleMatcher exampleMatcher = ExampleMatcher.matching()
.withMatcher("routeId", ExampleMatcher.GenericPropertyMatcher::exact)
.withIgnoreCase("id");
- if (keywords.isPresent() || type.isPresent()) {
- String keywordTrim = keywords.get().trim();
- String typeTrim = type.get().trim();
-
- if (StringUtils.isNotBlank(keywordTrim)) {
- requestParameter.setName(keywordTrim);
- exampleMatcher.withMatcher("name", ExampleMatcher.GenericPropertyMatcher::contains);
- }
-
- if (StringUtils.isNotBlank(typeTrim)) {
- requestParameter.setType(typeTrim);
- exampleMatcher.withMatcher("type", ExampleMatcher.GenericPropertyMatcher::exact);
- }
+ if (keywords.isPresent()) {
+ requestHeaderExample.setName(keywords.get().trim());
+ exampleMatcher.withMatcher("name", ExampleMatcher.GenericPropertyMatcher::contains);
}
- Example example = Example.of(requestParameter, exampleMatcher);
+ if (type.isPresent()) {
+ requestHeaderExample.setType(type.get().trim());
+ exampleMatcher.withMatcher("type", ExampleMatcher.GenericPropertyMatcher::exact);
+ }
+ Example example = Example.of(requestHeaderExample, exampleMatcher);
return ServerResponse.ok().contentType(MediaType.APPLICATION_JSON_UTF8).body(requestHeaderDao.findAll(example), RequestHeader.class);
}
diff --git a/src/main/java/ink/wgink/gateway/handler/route/request/RequestParameterHandler.java b/src/main/java/ink/wgink/gateway/handler/route/request/RequestParameterHandler.java
index 2b29b10..2ac91bd 100644
--- a/src/main/java/ink/wgink/gateway/handler/route/request/RequestParameterHandler.java
+++ b/src/main/java/ink/wgink/gateway/handler/route/request/RequestParameterHandler.java
@@ -1,12 +1,12 @@
package ink.wgink.gateway.handler.route.request;
import ink.wgink.gateway.dao.route.request.IRequestParameterDao;
+import ink.wgink.gateway.enums.FilterRequestResponseTypeEnum;
+import ink.wgink.gateway.exception.ParamsException;
import ink.wgink.gateway.exception.SearchException;
import ink.wgink.gateway.handler.BaseHandler;
import ink.wgink.gateway.pojo.result.SuccessResult;
-import ink.wgink.gateway.pojo.route.request.RequestHeader;
import ink.wgink.gateway.pojo.route.request.RequestParameter;
-import ink.wgink.gateway.pojo.routetype.RouteType;
import ink.wgink.gateway.util.RequestFieldCheckUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.data.domain.Example;
@@ -45,14 +45,17 @@ public class RequestParameterHandler extends BaseHandler {
Mono requestParameterMono = serverRequest.bodyToMono(RequestParameter.class);
return requestParameterMono.flatMap(requestParameter -> {
RequestFieldCheckUtil.check(requestParameter);
+ if (!StringUtils.equals(FilterRequestResponseTypeEnum.REMOVE.getValue(), requestParameter.getType()) && StringUtils.isBlank(requestParameter.getValue())) {
+ return Mono.error(new ParamsException("值不能为空"));
+ }
setSave(requestParameter);
- RouteType routeTypeExample = new RouteType();
- routeTypeExample.setTitle(requestParameter.getName().trim());
+ RequestParameter requestParameterExample = new RequestParameter();
+ requestParameterExample.setName(requestParameter.getName().trim());
ExampleMatcher exampleMatcher = ExampleMatcher.matching().withMatcher("name", ExampleMatcher.GenericPropertyMatcher::exact).withIgnoreCase("id");
- Example example = Example.of(routeTypeExample, exampleMatcher);
+ Example example = Example.of(requestParameterExample, exampleMatcher);
return requestParameterDao.findOne(example).flatMap(
- r -> Mono.error(new SearchException("Parameter已经存在"))
+ r -> Mono.error(new SearchException("参数已经存在"))
).switchIfEmpty(requestParameterDao.save(requestParameter));
}).then(ServerResponse.ok().contentType(MediaType.APPLICATION_JSON_UTF8).body(Flux.just(new SuccessResult()), SuccessResult.class));
}
@@ -63,66 +66,25 @@ public class RequestParameterHandler extends BaseHandler {
return requestParameterDao.findAllById(idList).flatMap(requestParameter -> requestParameterDao.delete(requestParameter)).then(ServerResponse.ok().contentType(MediaType.APPLICATION_JSON_UTF8).body(Mono.just(new SuccessResult()), SuccessResult.class));
}
- public Mono update(ServerRequest serverRequest) {
- String id = serverRequest.pathVariable("id");
- Mono requestParameterMono = serverRequest.bodyToMono(RequestParameter.class);
-
- // 查询ID是否存在
- return requestParameterDao.findById(id).flatMap(requestParameter -> {
- setUpdate(requestParameter);
- return requestParameterMono.flatMap(rp -> {
- RequestFieldCheckUtil.check(rp);
- requestParameter.setRouteId(rp.getRouteId());
- requestParameter.setType(rp.getType());
- requestParameter.setName(rp.getName());
- requestParameter.setValue(rp.getValue());
-
- RequestHeader requestHeaderExample = new RequestHeader();
- requestHeaderExample.setRouteId(rp.getRouteId());
- requestHeaderExample.setName(rp.getName());
- ExampleMatcher exampleMatcher = ExampleMatcher.matching()
- .withMatcher("routeId", ExampleMatcher.GenericPropertyMatcher::exact)
- .withMatcher("name", ExampleMatcher.GenericPropertyMatcher::exact)
- .withIgnoreCase("id");
- Example example = Example.of(requestHeaderExample, exampleMatcher);
- // 查询Name是否存在
- return requestParameterDao.findOne(example).flatMap(erp -> {
- RequestParameter existRouteParameter = (RequestParameter) erp;
- // 如果已经存在
- if (!StringUtils.equals(existRouteParameter.getUuid(), id)) {
- return Mono.error(new SearchException("参数已经存在"));
- }
- return requestParameterDao.save(requestParameter);
- }).switchIfEmpty(requestParameterDao.save(requestParameter));
- });
- }).switchIfEmpty(ServerResponse.notFound().build()).then(ServerResponse.ok().contentType(MediaType.APPLICATION_JSON_UTF8).body(Mono.just(new SuccessResult()), SuccessResult.class));
- }
-
public Mono list(ServerRequest serverRequest) {
String routeId = serverRequest.pathVariable("routeId");
Optional keywords = serverRequest.queryParam("keywords");
Optional type = serverRequest.queryParam("type");
- RequestParameter requestParameter = new RequestParameter();
- requestParameter.setRouteId(routeId);
+ RequestParameter requestParameterExample = new RequestParameter();
+ requestParameterExample.setRouteId(routeId);
ExampleMatcher exampleMatcher = ExampleMatcher.matching()
.withMatcher("routeId", ExampleMatcher.GenericPropertyMatcher::exact)
.withIgnoreCase("id");
- if (keywords.isPresent() || type.isPresent()) {
- String keywordTrim = keywords.get().trim();
- String typeTrim = type.get().trim();
-
- if (StringUtils.isNotBlank(keywordTrim)) {
- requestParameter.setName(keywordTrim);
- exampleMatcher.withMatcher("name", ExampleMatcher.GenericPropertyMatcher::contains);
- }
-
- if (StringUtils.isNotBlank(typeTrim)) {
- requestParameter.setType(typeTrim);
- exampleMatcher.withMatcher("type", ExampleMatcher.GenericPropertyMatcher::exact);
- }
+ if (keywords.isPresent()) {
+ requestParameterExample.setName(keywords.get().trim());
+ exampleMatcher.withMatcher("name", ExampleMatcher.GenericPropertyMatcher::contains);
}
- Example example = Example.of(requestParameter, exampleMatcher);
+ if (type.isPresent()) {
+ requestParameterExample.setType(type.get().trim());
+ exampleMatcher.withMatcher("type", ExampleMatcher.GenericPropertyMatcher::exact);
+ }
+ Example example = Example.of(requestParameterExample, exampleMatcher);
return ServerResponse.ok().contentType(MediaType.APPLICATION_JSON_UTF8).body(requestParameterDao.findAll(example), RequestParameter.class);
}
diff --git a/src/main/java/ink/wgink/gateway/handler/route/request/ResponseHeaderHandler.java b/src/main/java/ink/wgink/gateway/handler/route/request/ResponseHeaderHandler.java
new file mode 100644
index 0000000..965132e
--- /dev/null
+++ b/src/main/java/ink/wgink/gateway/handler/route/request/ResponseHeaderHandler.java
@@ -0,0 +1,99 @@
+package ink.wgink.gateway.handler.route.request;
+
+import ink.wgink.gateway.dao.route.request.IResponseHeaderDao;
+import ink.wgink.gateway.enums.FilterRequestResponseTypeEnum;
+import ink.wgink.gateway.exception.ParamsException;
+import ink.wgink.gateway.exception.SearchException;
+import ink.wgink.gateway.handler.BaseHandler;
+import ink.wgink.gateway.pojo.result.SuccessResult;
+import ink.wgink.gateway.pojo.route.request.ResponseHeader;
+import ink.wgink.gateway.util.RequestFieldCheckUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.data.domain.Example;
+import org.springframework.data.domain.ExampleMatcher;
+import org.springframework.http.MediaType;
+import org.springframework.stereotype.Service;
+import org.springframework.web.reactive.function.server.ServerRequest;
+import org.springframework.web.reactive.function.server.ServerResponse;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Optional;
+
+/**
+ * When you feel like quitting. Think about why you started
+ * 当你想要放弃的时候,想想当初你为何开始
+ *
+ * @ClassName: ResponseHeaderHandler
+ * @Description: 响应头处理
+ * @Author: WangGeng
+ * @Date: 2021/5/30 17:00
+ * @Version: 1.0
+ **/
+@Service
+public class ResponseHeaderHandler extends BaseHandler {
+
+ private IResponseHeaderDao responseHeaderDao;
+
+ public ResponseHeaderHandler(IResponseHeaderDao responseHeaderDao) {
+ this.responseHeaderDao = responseHeaderDao;
+ }
+
+ public Mono save(ServerRequest serverRequest) {
+ Mono requestHeaderMono = serverRequest.bodyToMono(ResponseHeader.class);
+ return requestHeaderMono.flatMap(responseHeader -> {
+ RequestFieldCheckUtil.check(responseHeader);
+ if (!StringUtils.equals(FilterRequestResponseTypeEnum.REMOVE.getValue(), responseHeader.getType()) && StringUtils.isBlank(responseHeader.getValue())) {
+ return Mono.error(new ParamsException("值不能为空"));
+ }
+ setSave(responseHeader);
+
+ ResponseHeader responseHeaderExample = new ResponseHeader();
+ responseHeaderExample.setName(responseHeader.getName().trim());
+ ExampleMatcher exampleMatcher = ExampleMatcher.matching().withMatcher("name", ExampleMatcher.GenericPropertyMatcher::exact).withIgnoreCase("id");
+ Example example = Example.of(responseHeaderExample, exampleMatcher);
+ return responseHeaderDao.findOne(example).flatMap(
+ r -> Mono.error(new SearchException("参数已经存在"))
+ ).switchIfEmpty(responseHeaderDao.save(responseHeader));
+ }).then(ServerResponse.ok().contentType(MediaType.APPLICATION_JSON_UTF8).body(Flux.just(new SuccessResult()), SuccessResult.class));
+ }
+
+ public Mono delete(ServerRequest serverRequest) {
+ String ids = serverRequest.pathVariable("ids");
+ List idList = Arrays.asList(ids.split(","));
+ return responseHeaderDao.findAllById(idList).flatMap(requestHeader -> responseHeaderDao.delete(requestHeader)).then(ServerResponse.ok().contentType(MediaType.APPLICATION_JSON_UTF8).body(Mono.just(new SuccessResult()), SuccessResult.class));
+ }
+
+ public Mono list(ServerRequest serverRequest) {
+ String routeId = serverRequest.pathVariable("routeId");
+ Optional keywords = serverRequest.queryParam("keywords");
+ Optional type = serverRequest.queryParam("type");
+
+ ResponseHeader responseHeaderExample = new ResponseHeader();
+ responseHeaderExample.setRouteId(routeId);
+
+ ExampleMatcher exampleMatcher = ExampleMatcher.matching()
+ .withMatcher("routeId", ExampleMatcher.GenericPropertyMatcher::exact)
+ .withIgnoreCase("id");
+ if (keywords.isPresent()) {
+ responseHeaderExample.setName(keywords.get().trim());
+ exampleMatcher.withMatcher("name", ExampleMatcher.GenericPropertyMatcher::contains);
+ }
+ if (type.isPresent()) {
+ responseHeaderExample.setType(type.get().trim());
+ exampleMatcher.withMatcher("type", ExampleMatcher.GenericPropertyMatcher::exact);
+ }
+ Example example = Example.of(responseHeaderExample, exampleMatcher);
+ return ServerResponse.ok().contentType(MediaType.APPLICATION_JSON_UTF8).body(responseHeaderDao.findAll(example), ResponseHeader.class);
+ }
+
+ public Mono get(ServerRequest serverRequest) {
+ String id = serverRequest.pathVariable("id");
+ return responseHeaderDao.findById(id).flatMap(
+ requestHeader -> ServerResponse.ok().body(Mono.just(requestHeader), ResponseHeader.class)
+ ).switchIfEmpty(ServerResponse.notFound().build());
+ }
+
+}
diff --git a/src/main/java/ink/wgink/gateway/pojo/route/request/RequestHeader.java b/src/main/java/ink/wgink/gateway/pojo/route/request/RequestHeader.java
index d8958f9..74262d7 100644
--- a/src/main/java/ink/wgink/gateway/pojo/route/request/RequestHeader.java
+++ b/src/main/java/ink/wgink/gateway/pojo/route/request/RequestHeader.java
@@ -1,7 +1,6 @@
package ink.wgink.gateway.pojo.route.request;
import ink.wgink.gateway.annoation.CheckEmptyAnnotation;
-import ink.wgink.gateway.annoation.CheckNumberAnnotation;
import ink.wgink.gateway.dao.route.request.IRequestHeaderDao;
import ink.wgink.gateway.pojo.BasePOJO;
import org.springframework.data.mongodb.core.mapping.Document;
@@ -21,11 +20,10 @@ public class RequestHeader extends BasePOJO {
@CheckEmptyAnnotation(name = "路由ID")
private String routeId;
- @CheckNumberAnnotation(name = "类型")
+ @CheckEmptyAnnotation(name = "类型")
private String type;
@CheckEmptyAnnotation(name = "名称")
private String name;
- @CheckEmptyAnnotation(name = "值")
private String value;
public String getRouteId() {
diff --git a/src/main/java/ink/wgink/gateway/pojo/route/request/RequestParameter.java b/src/main/java/ink/wgink/gateway/pojo/route/request/RequestParameter.java
index f456030..4a1ea48 100644
--- a/src/main/java/ink/wgink/gateway/pojo/route/request/RequestParameter.java
+++ b/src/main/java/ink/wgink/gateway/pojo/route/request/RequestParameter.java
@@ -24,7 +24,6 @@ public class RequestParameter extends BasePOJO {
private String type;
@CheckEmptyAnnotation(name = "名称")
private String name;
- @CheckEmptyAnnotation(name = "值")
private String value;
public String getRouteId() {
diff --git a/src/main/java/ink/wgink/gateway/pojo/route/request/ResponseHeader.java b/src/main/java/ink/wgink/gateway/pojo/route/request/ResponseHeader.java
new file mode 100644
index 0000000..5a13c7e
--- /dev/null
+++ b/src/main/java/ink/wgink/gateway/pojo/route/request/ResponseHeader.java
@@ -0,0 +1,60 @@
+package ink.wgink.gateway.pojo.route.request;
+
+import ink.wgink.gateway.annoation.CheckEmptyAnnotation;
+import ink.wgink.gateway.dao.route.request.IResponseHeaderDao;
+import ink.wgink.gateway.pojo.BasePOJO;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+/**
+ * When you feel like quitting. Think about why you started
+ * 当你想要放弃的时候,想想当初你为何开始
+ *
+ * @ClassName: ResponseHeader
+ * @Description: 响应头
+ * @Author: WangGeng
+ * @Date: 2021/5/29 22:20
+ * @Version: 1.0
+ **/
+@Document(collection = IResponseHeaderDao.COLLECTION_NAME)
+public class ResponseHeader extends BasePOJO {
+
+ @CheckEmptyAnnotation(name = "路由ID")
+ private String routeId;
+ @CheckEmptyAnnotation(name = "类型")
+ private String type;
+ @CheckEmptyAnnotation(name = "名称")
+ private String name;
+ private String value;
+
+ public String getRouteId() {
+ return routeId == null ? "" : routeId.trim();
+ }
+
+ public void setRouteId(String routeId) {
+ this.routeId = routeId;
+ }
+
+ public String getName() {
+ return name == null ? "" : name.trim();
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getType() {
+ return type == null ? "" : type.trim();
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getValue() {
+ return value == null ? "" : value.trim();
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+}
diff --git a/src/main/java/ink/wgink/gateway/router/route/request/RequestHeaderRouter.java b/src/main/java/ink/wgink/gateway/router/route/request/RequestHeaderRouter.java
index d88b1bf..3b8750c 100644
--- a/src/main/java/ink/wgink/gateway/router/route/request/RequestHeaderRouter.java
+++ b/src/main/java/ink/wgink/gateway/router/route/request/RequestHeaderRouter.java
@@ -25,12 +25,11 @@ public class RequestHeaderRouter extends BaseRouter {
@Bean
public RouterFunction requestHeaderFunction(RequestHeaderHandler requestHeaderHandler) {
- return RouterFunctions.nest(RequestPredicates.path(ISystemConst.ADMIN_ROUTER_PREFIX + "/api/request-header"),
+ return RouterFunctions.nest(RequestPredicates.path(ISystemConst.ADMIN_ROUTER_PREFIX + "/api/route/request-header"),
RouterFunctions
.route(RequestPredicates.POST("/save"), requestHeaderHandler::save)
.andRoute(RequestPredicates.DELETE("/delete/{ids}"), requestHeaderHandler::delete)
- .andRoute(RequestPredicates.PUT("/update/{id}"), requestHeaderHandler::update)
- .andRoute(RequestPredicates.GET("list"), requestHeaderHandler::list)
+ .andRoute(RequestPredicates.GET("list/{routeId}"), requestHeaderHandler::list)
.andRoute(RequestPredicates.GET("/get/{id}"), requestHeaderHandler::get)
);
}
diff --git a/src/main/java/ink/wgink/gateway/router/route/request/RequestParameterRouter.java b/src/main/java/ink/wgink/gateway/router/route/request/RequestParameterRouter.java
index 9d4bbfb..182e180 100644
--- a/src/main/java/ink/wgink/gateway/router/route/request/RequestParameterRouter.java
+++ b/src/main/java/ink/wgink/gateway/router/route/request/RequestParameterRouter.java
@@ -25,13 +25,12 @@ public class RequestParameterRouter extends BaseRouter {
@Bean
public RouterFunction requestParameterFunction(RequestParameterHandler requestParameterHandler) {
- return RouterFunctions.nest(RequestPredicates.path(ISystemConst.ADMIN_ROUTER_PREFIX + "/api/request-parameter"),
+ return RouterFunctions.nest(RequestPredicates.path(ISystemConst.ADMIN_ROUTER_PREFIX + "/api/route/request-parameter"),
RouterFunctions
.route(RequestPredicates.POST("/save"), requestParameterHandler::save)
.andRoute(RequestPredicates.DELETE("/delete/{ids}"), requestParameterHandler::delete)
- .andRoute(RequestPredicates.PUT("/update/{id}"), requestParameterHandler::update)
- .andRoute(RequestPredicates.GET("list"), requestParameterHandler::list)
- .andRoute(RequestPredicates.GET("/get{id}"), requestParameterHandler::get)
+ .andRoute(RequestPredicates.GET("list/{routeId}"), requestParameterHandler::list)
+ .andRoute(RequestPredicates.GET("/get/{id}"), requestParameterHandler::get)
);
}
diff --git a/src/main/java/ink/wgink/gateway/router/route/request/ResponseHeaderRouter.java b/src/main/java/ink/wgink/gateway/router/route/request/ResponseHeaderRouter.java
new file mode 100644
index 0000000..72850cd
--- /dev/null
+++ b/src/main/java/ink/wgink/gateway/router/route/request/ResponseHeaderRouter.java
@@ -0,0 +1,37 @@
+package ink.wgink.gateway.router.route.request;
+
+import ink.wgink.gateway.consts.ISystemConst;
+import ink.wgink.gateway.handler.route.request.ResponseHeaderHandler;
+import ink.wgink.gateway.router.BaseRouter;
+import org.springframework.context.annotation.Bean;
+import org.springframework.stereotype.Component;
+import org.springframework.web.reactive.function.server.RequestPredicates;
+import org.springframework.web.reactive.function.server.RouterFunction;
+import org.springframework.web.reactive.function.server.RouterFunctions;
+import org.springframework.web.reactive.function.server.ServerResponse;
+
+/**
+ * When you feel like quitting. Think about why you started
+ * 当你想要放弃的时候,想想当初你为何开始
+ *
+ * @ClassName: ResponseHeaderRouter
+ * @Description: 响应头路由
+ * @Author: WangGeng
+ * @Date: 2021/5/30 17:07
+ * @Version: 1.0
+ **/
+@Component
+public class ResponseHeaderRouter extends BaseRouter {
+
+ @Bean
+ public RouterFunction responseHeaderFunction(ResponseHeaderHandler responseHeaderHandler) {
+ return RouterFunctions.nest(RequestPredicates.path(ISystemConst.ADMIN_ROUTER_PREFIX + "/api/route/response-header"),
+ RouterFunctions
+ .route(RequestPredicates.POST("/save"), responseHeaderHandler::save)
+ .andRoute(RequestPredicates.DELETE("/delete/{ids}"), responseHeaderHandler::delete)
+ .andRoute(RequestPredicates.GET("list/{routeId}"), responseHeaderHandler::list)
+ .andRoute(RequestPredicates.GET("/get/{id}"), responseHeaderHandler::get)
+ );
+ }
+
+}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 3900694..0ca39e3 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -14,5 +14,5 @@ spring:
logging:
level:
- org.springframework: error
+ org.springframework: debug
ink.wgink: debug
\ No newline at end of file
diff --git a/src/main/resources/static/wg/assets/layui/modules/restajax.js b/src/main/resources/static/wg/assets/layui/modules/restajax.js
index a42e4d9..70b445c 100644
--- a/src/main/resources/static/wg/assets/layui/modules/restajax.js
+++ b/src/main/resources/static/wg/assets/layui/modules/restajax.js
@@ -114,7 +114,6 @@ layui.define(function(exports) {
successCallback(responseCode, data, args);
},
error: function (XMLHttpRequest) {
- console.log(XMLHttpRequest)
var responseCode = XMLHttpRequest.status;
var responseData = JSON.parse(XMLHttpRequest.responseText ? XMLHttpRequest.responseText: "{}");
if (errorCallback != undefined && errorCallback != null && typeof(errorCallback) == 'function') {
diff --git a/src/main/resources/static/wg/home.html b/src/main/resources/static/wg/home.html
index 077a531..57cb1ce 100644
--- a/src/main/resources/static/wg/home.html
+++ b/src/main/resources/static/wg/home.html
@@ -111,12 +111,8 @@
'routeCount': function(value, old) {
$('#routeCount').animateNumbers(value);
},
- 'lastRequestLogArray': function(value, old) {
-
- },
- 'lastRequestLogLineChat': function() {
-
- }
+ 'lastRequestLogArray': function(value, old) {},
+ 'lastRequestLogLineChat': function() {}
},
methods: {
sseCountHome: function() {
@@ -138,8 +134,6 @@
source.addEventListener('error', function(e) {
if (e.readyState == EventSource.CLOSED) {
console.log("连接关闭");
- } else {
- console.log(e);
}
}, false);
},
@@ -221,8 +215,6 @@
source.addEventListener('error', function(e) {
if (e.readyState == EventSource.CLOSED) {
console.log("连接关闭");
- } else {
- console.log(e);
}
}, false);
},
diff --git a/src/main/resources/static/wg/route/route/list.html b/src/main/resources/static/wg/route/route/list.html
index e14f9df..f1b7277 100644
--- a/src/main/resources/static/wg/route/route/list.html
+++ b/src/main/resources/static/wg/route/route/list.html
@@ -174,7 +174,16 @@
}
return rowData;
}
- }
+ },
+ {field: 'headersParams', width: 188, title: '参数设置', align: 'center', fixed: 'right',
+ templet: function (row) {
+ return '' +
+ '' +
+ '' +
+ '' +
+ '
';
+ }
+ },
]],
data: tableData.dataArray,
page: true,
@@ -299,6 +308,36 @@
parent.layer.close(parent.layer.getFrameIndex(window.name));
}
});
+
+ table.on('tool(dataTable)', function(obj) {
+ var layEvent = obj.event;
+ var data = obj.data;
+ if(layEvent === 'requestHeaderEvent') {
+ top.dialog.open({
+ url: top.restAjax.path('route/route/request-header/list.html?routeId={uuid}', [data.uuid]),
+ title: '请求头参数设置',
+ width: '750px',
+ height: '400px',
+ onClose: function() {}
+ });
+ } else if(layEvent === 'responseHeaderEvent') {
+ top.dialog.open({
+ url: top.restAjax.path('route/route/response-header/list.html?routeId={uuid}', [data.uuid]),
+ title: '响应头参数设置',
+ width: '750px',
+ height: '400px',
+ onClose: function() {}
+ });
+ } else if(layEvent === 'paramsEvent') {
+ top.dialog.open({
+ url: top.restAjax.path('route/route/request-parameter/list.html?routeId={uuid}', [data.uuid]),
+ title: '请求参数设置',
+ width: '750px',
+ height: '400px',
+ onClose: function() {}
+ });
+ }
+ });
});
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/static/wg/route/route/request-header/list.html b/src/main/resources/static/wg/route/route/request-header/list.html
new file mode 100644
index 0000000..43d01b1
--- /dev/null
+++ b/src/main/resources/static/wg/route/route/request-header/list.html
@@ -0,0 +1,231 @@
+
+
+