Closed alan-czajkowski closed 1 year ago
It looks like swagger ui doesn't support 3.1.0 version yet. see: https://github.com/swagger-api/swagger-ui/issues/5891
@uc4w6c OpenAPI 3.1 is not the problem, I have updated the issue description with a 3.0 reference that still produces the same problem:
springdoc:
api-docs:
version: "openapi_3_0"
@alan-czajkowski I see. Please see. springdoc/springdoc-openapi#2143
@uc4w6c according to that issue you posted https://github.com/springdoc/springdoc-openapi/issues/2143 the fix ends up being adding the ByteArrayHttpMessageConverter
to the list of converters:
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> messageConverters) {
messageConverters.add(new StringHttpMessageConverter());
messageConverters.add(new ByteArrayHttpMessageConverter());
messageConverters.add(new MappingJackson2HttpMessageConverter(JsonUtils.createObjectMapper()));
}
but this is hardly a proper fix, this is just a work-around, I hope the issue I described gets properly resolved
@alan-czajkowski,
You are overriding the default spring registered HttpMessageConverter, you should have ByteArrayHttpMessageConverter registered as well to have proper springdoc-openapi
support.
This is the required setting for your use case.
Are you having any other fix in mind, that we didn't integrate in the library ?
@bnasslahsen this is becoming a notorious use-case, and the SpringDoc documentation does not properly describe this use-case, that is becoming very popular and frustrating to users (who read the documentation)
This section is added in the FAQ, for this use-case:
Describe the bug
Swagger UI page complains about rendering the definition, shows error on page saying: http://localhost:8080/swagger-ui/index.html
when running the Spring Boot Maven plugin:
To Reproduce
Steps to reproduce the behavior:
Using Spring Boot 2.6:
Using SpringDoc 1.6:
Run using the Spring Boot Maven plugin:
Expected behavior
Swagger UI does not throw error
Additional context
Config:
Using custom HTTP message converters:
Unable to see JSON spec at: http://localhost:8080/v3/api-docs only shows some kind of Base64 output (not JSON)