解決:
@Configuration
public class SwaggerConfig {
@Autowired
private TypeResolver typeResolver;
@Bean
public Docket controllerApi() {
// ParameterBuilder ticketPar = new ParameterBuilder();
// List<Parameter> pars = new ArrayList<>();
// ticketPar.name("token").description("token")
// .modelRef(new ModelRef("string")).parameterType("header")
// .required(false).build(); //header中的token參數非必填,傳空也可以
// pars.add(ticketPar.build()); //根據每個方法名也知道當前方法在設置什麼參數
return new Docket(DocumentationType.SWAGGER_2)
.alternateTypeRules(//解決返回對象爲Map<String, List<VersionPushStatisticResp>>時,Swagger頁面報錯
AlternateTypeRules.newRule(
typeResolver.resolve(Map.class, String.class, typeResolver.resolve(List.class, VersionPushStatisticResp.class)),
typeResolver.resolve(Map.class, String.class, WildcardType.class), Ordered.HIGHEST_PRECEDENCE),
)
.select()
.apis(RequestHandlerSelectors.basePackage("com.ltjh.adc.controller"))
.paths(PathSelectors.any())
.build()
// .globalOperationParameters(pars)
.apiInfo(new ApiInfoBuilder()
.title("接口文檔")
.description("項目名")
.version("1.0.0")
.build());
}
}
沒錯,重點就是加上alternateTypeRules進行解析。
關注公衆號獲取更多內容,有問題也可在公衆號提問哦:
強哥叨逼叨
叨逼叨編程、互聯網的見解和新鮮事