我们有一个 webapp(war),它嵌入了在 Spring Boot 2.7.5 和 springdoc-openapi 1.6.14 下工作的 Swagger UI。我正在将 Spring Boot 更新到 2.7.11,一切正常。当我尝试将 springdoc-openapi 更新到 1.6.16 时,我看到此错误:
Unable to render this definition
The provided definition does not specify a valid version field.
Please indicate a valid Swagger or OpenAPI version field. Supported version fields are swagger: "2.0" and those that match openapi: 3.0.n (for example, openapi: 3.0.0).
在阅读了有同样问题的人的帖子后,我开始点击 /v3/api-docs URL,我看到的只是一长串字符(有点像加密字符串)。我切换回 springdoc-openapi 1.6.14 并点击 /v3/api-docs 并返回了有效的 json 。然后我尝试了 springdoc-openapi 1.7.0,它也表现出了返回一长串字符的行为。
我需要解决 Swagger-UI 显示问题。我看了 Swagger-ui 项目,但对 React 和 js 不熟悉。
似乎您的服务的http消息转换器配置可能不包含
ByteArrayHttpMessageConverter
。
如果您提供了自己的消息转换器配置,请确保它存在并且已添加到 before MappingJackson2HttpMessageConverter
。
请参阅此springdoc问题报告以供参考