GatewayRouteForm.java 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package com.yaozhitech.spring5.form;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import javax.validation.constraints.NotBlank;
  5. import javax.validation.constraints.NotEmpty;
  6. import org.springframework.beans.BeanUtils;
  7. import com.fasterxml.jackson.core.JsonProcessingException;
  8. import com.fasterxml.jackson.databind.ObjectMapper;
  9. import io.swagger.annotations.ApiModel;
  10. import io.swagger.annotations.ApiModelProperty;
  11. import lombok.Data;
  12. import lombok.extern.slf4j.Slf4j;
  13. @ApiModel
  14. @Data
  15. @Slf4j
  16. public class GatewayRouteForm {
  17. @NotEmpty(message = "网关断言不能为空")
  18. @ApiModelProperty(value = "网关断言")
  19. private List<PredicateDefinition> predicates = new ArrayList<>();
  20. @ApiModelProperty(value = "网关过滤器信息")
  21. private List<FilterDefinition> filters = new ArrayList<>();
  22. @NotBlank(message = "uri不能为空")
  23. @ApiModelProperty(value = "网关uri")
  24. private String uri;
  25. @NotBlank(message = "路由id不能为空")
  26. @ApiModelProperty(value = "网关路由id")
  27. private String routeId;
  28. @ApiModelProperty(value = "排序")
  29. private Integer orders = 0;
  30. @ApiModelProperty(value = "网关路由描述信息")
  31. private String description;
  32. public GatewayRoute toPo(Class<GatewayRoute> clazz) {
  33. GatewayRoute gatewayRoute = new GatewayRoute();
  34. BeanUtils.copyProperties(this, gatewayRoute);
  35. try {
  36. ObjectMapper objectMapper = new ObjectMapper();
  37. gatewayRoute.setFilters(objectMapper.writeValueAsString(this.getFilters()));
  38. gatewayRoute.setPredicates(objectMapper.writeValueAsString(this.getPredicates()));
  39. } catch (JsonProcessingException e) {
  40. log.error("网关filter或predicates配置转换异常", e);
  41. }
  42. return gatewayRoute;
  43. }
  44. }