Spring springdoc-openapi:找不到 swagger-ui/index.html status=404

问题描述 投票:0回答:4

我有一个依赖于 springdoc-openapi 的 spring boot 应用程序(2.5.6)。 但是,启动 swagger-ui (http://localhost:8080/v1/swagger-ui/index.html) 不起作用。 调试日志表明index.html 不存在。 找不到index.html可能是什么原因?

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-ui</artifactId>
    <version>1.6.8</version>
</dependency>

application.yaml

springdoc:
  swagger-ui:
    tagsSorter: alpha
    operations-sorter: alpha
    doc-expansion: none
    disable-swagger-default-url: true

logging:
  level:
    root: DEBUG

server:
  port: 8080

spring:
  application:
    name: fe-applic-app
    api-version: "v1"

java spring-boot swagger-ui springdoc
4个回答
5
投票

我找到了问题的原因。 application.yaml 中未设置上下文路径。

http://localhost:8080/v1/swagger-ui/index.html

添加 servlet : context-path 后,渲染出 swagger-ui

server:
  port: 8080
  servlet:
    context-path: "/${spring.application.api-version}"

3
投票

尝试使用

swagger-ui.html
而不是
swagger-ui/index.html
。在 60% 的情况下,
swagger-ui.html
会重定向到其真实位置。

http://localhost:8080/v1/swagger-ui.html http://localhost:8080/v3/swagger-ui.html


1
投票

将其添加到您的配置中:

@Configuration
public class WebAppConfig extends WebMvcConfigurationSupport
{

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry)
    {
        registry.addResourceHandler("/swagger-ui/**")
        .addResourceLocations("classpath:/META-INF/resources/webjars/swagger-ui/4.14.3/");
    }

参见来源静态资源


0
投票

如果您使用 spring 3 的开放 API。它会给出 404 错误。因此使用 springdoc-openapi-starter-webmvc-ui 依赖项。

例如

    <dependency>
        <groupId>org.springdoc</groupId>
        <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
        <version>2.1.0</version>
    </dependency>
© www.soinside.com 2019 - 2024. All rights reserved.