package com.yaozhitech.spring5.form; import java.util.ArrayList; import java.util.List; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotEmpty; import org.springframework.beans.BeanUtils; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.extern.slf4j.Slf4j; @ApiModel @Data @Slf4j public class GatewayRouteForm { @NotEmpty(message = "网关断言不能为空") @ApiModelProperty(value = "网关断言") private List predicates = new ArrayList<>(); @ApiModelProperty(value = "网关过滤器信息") private List filters = new ArrayList<>(); @NotBlank(message = "uri不能为空") @ApiModelProperty(value = "网关uri") private String uri; @NotBlank(message = "路由id不能为空") @ApiModelProperty(value = "网关路由id") private String routeId; @ApiModelProperty(value = "排序") private Integer orders = 0; @ApiModelProperty(value = "网关路由描述信息") private String description; public GatewayRoute toPo(Class clazz) { GatewayRoute gatewayRoute = new GatewayRoute(); BeanUtils.copyProperties(this, gatewayRoute); try { ObjectMapper objectMapper = new ObjectMapper(); gatewayRoute.setFilters(objectMapper.writeValueAsString(this.getFilters())); gatewayRoute.setPredicates(objectMapper.writeValueAsString(this.getPredicates())); } catch (JsonProcessingException e) { log.error("网关filter或predicates配置转换异常", e); } return gatewayRoute; } }