Problem
Some services don’t have an UI and the OpenAPI/ Swagger UI should be used as default UI of the service. As so the root should be redirected directly to the SwaggerUI.
Solution
Just add a WebMvc redirect.
@Configuration public class OpenApiConfig implements WebMvcConfigurer { @Override public void addViewControllers(final ViewControllerRegistry registry) { registry.addRedirectViewController("/", "/swagger-ui.html"); // use setStatusCode(HttpStatus.XYZ) for any custom status code if required, e.g. MOVED_PERMANENTLY registry.addRedirectViewController("/swagger-ui", "/swagger-ui.html"); // any other alias } }
Swagger Open API dependencies
Spring Boot 2.x
Ensure you check the current version:
<dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-ui</artifactId> <version>1.7.0</version> </dependency> <!-- if spring security is used --> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-security</artifactId> <version>1.7.0</version> </dependency>
Spring Boot 3.x
Ensure you check the current version:
<dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <version>2.1.0</version> </dependency>
With the new version you can also use the application.yml
to configure the root directory as swagger ui:
springdoc: swagger-ui: use-root-path: true