Swagger 对于localDate、LocalDateTime 处理会报错,或者存在复杂的数据结构时,不支持
需要再swagger配置文件中自定义类型对应规则
代码示例:
return builder.build().alternateTypeRules(
AlternateTypeRules.newRule(typeResolver.resolve(new GenericType<Map<String,LocalDate>>() { }), typeResolver.resolve(new GenericType<Map<String,Date>>() { })),
AlternateTypeRules.newRule(typeResolver.resolve(new GenericType<Map<String,LocalDateTime>>() { }), typeResolver.resolve(new GenericType<Map<String,Date>>() { })),
AlternateTypeRules.newRule(typeResolver.resolve(List.class, LocalDate.class), typeResolver.resolve(List.class, java.sql.Date.class)),
AlternateTypeRules.newRule(typeResolver.resolve(List.class, LocalDateTime.class), typeResolver.resolve(List.class, java.util.Date.class))).directModelSubstitute(LocalDateTime.class,String.class).directModelSubstitute(LocalDate.class,String.class).securitySchemes(Collections.singletonList(securitySchema()))
.securityContexts(Collections.singletonList(securityContext())).pathMapping("/");
当使用Swagger遇到localDate和LocalDateTime类型导致的错误,或者面对复杂数据结构不支持的情况,可以通过在Swagger配置文件中定义自定义类型规则来解决。示例代码展示了如何使用AlternateTypeRules进行类型转换,如将Map<String,LocalDate>和Map<String,LocalDateTime>转换为Map<String,Date>,以及List<LocalDate>和List<LocalDateTime>转换为List<java.util.Date>,并用String替换LocalDateTime和LocalDate。此外,还涉及了安全方案和路径映射的配置。
764

被折叠的 条评论
为什么被折叠?



