Swagger-ui 不断显示示例 petstore 而不是我的 API

chr*_*ris 4 java maven swagger-ui spring-boot

我对此有点迷失,因为它通常是开箱即用的。我正在制作一个小型 java spring-boot Rest api,为了获得漂亮的 API 描述和测试页面,我使用 Swagger。除了这次它不显示我的应用程序的内容,它显示默认的宠物商店页面。

这是我在 pom 中得到的内容(在我的其他应用程序中看起来是一样的):

    <properties>
        <java.version>11</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.14.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.14.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j-impl</artifactId>
            <version>2.14.0</version>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.7.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.7.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-ui</artifactId>
            <version>1.5.6</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>3.0.0</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>42.2.19</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>${springfox.version}</version>
        </dependency>
Run Code Online (Sandbox Code Playgroud)

但这并没有什么区别。不知道从这里去哪里。

Chr*_*ris 7

您可能只是访问了错误的 URL。这是我犯的一个错误。以我的项目为例:

  • http://localhost:8080/swagger-ui/index.html 将向我显示 PetSore API
  • http://localhost:8080/swagger-ui.html 显示我自己的 API

OpenAPI页面向我提供了这一点:

  • 然后,Swagger UI 页面将在以下位置提供, http://server:port/context-path/swagger-ui.html并且 OpenAPI 描述将在以下 json 格式的 url 中提供: http://server:port/context-path/v3/api-docs

    • 服务器:服务器名称或IP
    • 端口:服务器端口
    • context-path:应用程序的上下文路径