解決swagger返回map複雜結構不能解析 Resolver error at definitions

解決:

@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進行解析。

 

關注公衆號獲取更多內容,有問題也可在公衆號提問哦:

 

強哥叨逼叨

叨逼叨編程、互聯網的見解和新鮮事

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章