Совместим ли Springdoc-openapi-gradle-plugin с id("org.springframework.boot") версии "3.2.5"?

Я пытаюсь использовать Springdoc-openapi-gradle-plugin для создания документации OpenAPI в моем приложении Spring Boot. Однако, похоже, это не работает.

Я добавил в application-test.yml:

(...)
oauth:
    killSwitch: true
springdoc:
  swagger-ui:
    enabled: false
  api-docs:
    enabled: true

И для сборки.gradle:

plugins {
id("org.springframework.boot") version "3.2.5"
(...)
id("org.springdoc.openapi-gradle-plugin") version "1.8.0"
}

dependencies {
(...)
implementation("org.springframework.boot:spring-boot-starter-actuator")
implementation("org.springframework.boot:spring-boot-starter-webflux")
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("org.springframework.boot:spring-boot-starter-test")
testImplementation("org.springframework.boot:spring-boot-starter-test")
(...)
implementation("org.springdoc:springdoc-openapi-ui:1.8.0")
implementation("org.springdoc:springdoc-openapi-kotlin:1.8.0")

}

(...)

tasks.named("forkedSpringBootRun", JavaExecFork::class) {
    classpath = sourceSets["test"].runtimeClasspath
}

openApi {
    apiDocsUrl.set("http://localhost:8080/v3/api-docs.yaml")
    outputDir.set(file("src/main/resources"))
    outputFileName.set("test.swagger")
    waitTimeInSeconds.set(120)

    customBootRun{
        classpath.setFrom(sourceSets["test"].runtimeClasspath)
        mainClass.set("xxx.TestConfiguration")
        args.set(listOf("--spring.profiles.active=test"))
    }
}

tasks.named("generateOpenApiDocs") {
    dependsOn("testClasses")
    mustRunAfter("testClasses")
}

Однако после запуска задачи генерированияOpenApiDocs подождите, пока приложение запустится, и я получил:

(...)
... Tomcat started on port 8080 (http) with context path ''
... Started TestConfiguration.Companion in 10.671 seconds (process running for 10.982)


Execution failed for task ':generateOpenApiDocs'.
> Unable to connect to http://localhost:8080/v3/api-docs.yaml waited for 120 seconds

Интересно, несовместима ли моя версия весенней загрузки или чего-то еще не хватает?

Спасибо

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Версия Java на основе версии загрузки
Версия Java на основе версии загрузки
Если вы зайдете на официальный сайт Spring Boot , там представлен start.spring.io , который упрощает создание проектов Spring Boot, как показано ниже.
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
1
0
99
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Основная проблема не в этом id("org.springdoc.openapi-gradle-plugin") version "1.8.0", потому что это последняя версия, поддерживаемая Spring Boot 3.

Вам необходимо обновить зависимости openapi. Несколько старых зависимостей не поддерживаются SpringBoot 3.

implementation("org.springdoc:springdoc-openapi-ui:1.8.0") заменить на: implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.5.0")

Для получения дополнительной информации посетите эту страницу

Спасибо @vik, эта комбинация сработала: plugins { id("org.springframework.boot") version "3.2.5" id("org.springdoc.openapi-gradle-plugin") version "1.8.0" } dependencies { implementation("org.springdoc:springdoc-openapi-starter-webm‌​vc-ui:2.5.0") } Какие дополнительные зависимости мне нужно было бы использовать, если бы мне также требовался доступ к пользовательскому интерфейсу Swagger в «../swagger-ui/index.html»? В очередной раз благодарим за помощь.

ashmedai82 10.06.2024 12:14

Возникает ли у вас какая-либо ошибка при доступе к этому URL-адресу /swagger-ui/index.html?

Vikrant 10.06.2024 20:12

Другие вопросы по теме