404问题
gateway2.0以上版本集成swagger2时访问,会显示404,解决方案如下
@Component
public class SwaggerHeaderFilter extends AbstractGatewayFilterFactory {
@Override
public GatewayFilter apply(Object config) {
return (exchange, chain) -> {
ServerHttpRequest request = exchange.getRequest();
String path = request.getURI().getPath();
if (!StringUtils.endsWithIgnoreCase(path, SwaggerProvider.API_URI)) {
return chain.filter(exchange);
}
ServerHttpRequest newRequest = request.mutate().build();
ServerWebExchange newExchange = exchange.mutate().request(newRequest).build();
return chain.filter(newExchange);
};
}
}
开发过程中碰到通过网关调用模块服务,显示404问题,然后把SwaggerHeaderFilter删掉,就可以正常访问了。
Could not resolve reference because of: Could not resolve pointer: /definitions/List does not exist
swagger界面显示提示信息:
Could not resolve reference because of: Could not resolve pointer: /definitions/List does not exist
解决方案:
ApiModel中 value 的 值 要和实体类名一致
@ApiModel(value = “UserDTO”, description = “用户信息”)
public class UserDTO {}
或者不要在返回类上面加@ApiModel
或者swagger版本从2.8.0升级到2.9.2
也有可能是controller层返回的为map,直接把返回类型改为?
public ResponseVo<?> maruko