How to fix the error of: The provided definition does not specify a valid version field after implementing Swagger under Spring Boot 3.2
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.3.0</version>
</dependency>
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
final Collection<HttpMessageConverter<?>> myConverters = new ArrayList<>();
final Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
builder.serializerByType(ObjectId.class, new ToStringSerializer());
final HttpMessageConverter<Object> converter = new MappingJackson2HttpMessageConverter(builder.build());
myConverters.add(converter);
myConverters.addAll(converters);
converters.clear();
converters.addAll(myConverters);
}
springdoc:
writer-with-default-pretty-printer: true
swagger-ui:
display-request-duration: true
disable-swagger-default-url: true
api-docs:
version: openapi_3_1
To fix this issue, just add the folling parameter in the openapi section !
Then it works fine!
screenshot of application.yml with openapi conf
screenshot of Swagger fixed exposed with entrypoints