【发布时间】:2022-12-29 17:41:24
【问题描述】:
除了我的 Vaadin-Flow 应用程序之外,我还想大摇大摆地工作。
我目前使用 Vaadin 22.0.4 与 Spring-Boot 2.6.3 和 springdoc-openapi-ui 1.6.5。
Swagger-ui 应该在http://localhost:8080/swagger-ui 下可用,但它不是:
我猜它以某种方式被 vaadin 阻止了。
http://localhost:8080/v3/api-docs 或由 spring 创建的 Rest-Endpoints 之类的东西工作正常。
有没有办法允许 swagger 工作的特定路线?
到目前为止我尝试了什么:
- 使用 spring security 允许 swagger(扩展
WebSecurityConfigurerAdapter并覆盖configure)。下面链接的存储库中有一个尝试的示例。 - 在 application.properties 中使用
vaadin.urlMapping=/foo/*更改来自 vaadin 的根映射。这有点管用……Swagger 在http://localhost:8080/swagger-ui下可用,Vaadin UI 在http://localhost:8080/foo下可用。我只是在寻找相反的方法。 Vaadin 应该在http://localhost:8080/下可用。但这表明招摇会奏效。 - 使用 Swagger 2
- springdoc.swagger-ui.path
我还上传了一个普通的 Vaadin 项目,问题是可重现的: https://github.com/DerAzubi/swagger-test (测试应用程序只需启动主要功能)
最后一次提交包含对默认 vaadin 启动器所做的所有更改。
【问题讨论】:
-
@TatuLund 感谢您的回答。看起来不像是同一个问题。当我将 Vaadin 映射到
/ui/*时,swagger 将正常启动。在链接的问题中,它不会启动并因 js 错误而失败(例如,我可以使用 vaadin 14 重现它,但我使用的是 22.0.4)。任何其他解决方法/修复的想法? -
据我所知,如果不更改 Vaadin 的 URL 映射,目前还没有办法(或至少是简单的方法)让 Swagger 工作。不过,我开了一张票来启用它:github.com/vaadin/flow/issues/12949。
-
对,就是这样。我设置了网址
-
@TarekOraby 非常感谢。期待解决方案:)
标签: spring-boot swagger vaadin openapi vaadin-flow