Created
March 28, 2023 16:21
-
-
Save pajoma/35a73eb5f818856be5d96b736e27b994 to your computer and use it in GitHub Desktop.
SpringDocs - Customize GroupedApi in external Module
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@Configuration | |
public class OpenApiConfiguration_ModuleX { | |
@Bean("ModXApiDefinitionBuilder") | |
public GroupedOpenApi.Builder adminApiDefinitionBuilder(@Value("${info.app.version:unknown}") String version) { | |
return GroupedOpenApi.builder() | |
.group("My API") | |
.addOpenApiCustomizer(openApi -> { | |
openApi.info(new Info().title("My API").version(version)); | |
}) | |
.pathsToMatch("/api/x/**"); | |
} | |
@Bean("ModXApiDefinition") | |
public GroupedOpenApi adminApiDefinition(@Qualifier("ModXApiDefinitionBuilder") GroupedOpenApi.Builder builder) { | |
return builder.build(); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@Configuration | |
public class OpenApiConfiguration_ModuleY implements InitializingBean { | |
private @Autowired(required = false) @Qualifier("ModXApiDefinitionBuilder") GroupedOpenApi.Builder builder; | |
@Override | |
public void afterPropertiesSet() { | |
if (Objects.nonNull(this.builder)) { | |
builder.addOperationCustomizer((ops, method) | |
-> ops.addParametersItem(new HeaderParameter().name("X-Application"))); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Example how to extend an API defined in a different module with additional parameters (in this case a header)