Skip to content

Instantly share code, notes, and snippets.

@hkakutalua
Created August 24, 2020 14:32
Show Gist options
  • Save hkakutalua/0caa292e37d5f062b05280570d75735f to your computer and use it in GitHub Desktop.
Save hkakutalua/0caa292e37d5f062b05280570d75735f to your computer and use it in GitHub Desktop.
Configure JsonNullable as simple type for Spring Fox
@Configuration
@EnableSwagger2
public class SpringFoxConfiguration {
@Bean
@Primary
public Docket swaggerSpringfoxApiDocket(List<SwaggerCustomizer> swaggerCustomizers,
ObjectProvider<AlternateTypeRule[]> alternateTypeRules) {
Docket docket = new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build()
.useDefaultResponseMessages(false)
.alternateTypeRules(getAlternateTypeRules());
swaggerCustomizers.forEach(customizer -> customizer.customize(docket));
Optional.ofNullable(alternateTypeRules.getIfAvailable()).ifPresent(docket::alternateTypeRules);
return docket;
}
private AlternateTypeRule[] getAlternateTypeRules() {
TypeResolver typeResolver = new TypeResolver();
AlternateTypeRule jsonNullableTypeRule = new AlternateTypeRule(
typeResolver.resolve(JsonNullable.class, WildcardType.class),
typeResolver.resolve(WildcardType.class));
return new AlternateTypeRule[] { jsonNullableTypeRule };
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment