Spring Boot 3.4.1 — Ошибка Swagger UI 404: «Нет статического ресурса openapi/api-v1.0.yaml».JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Spring Boot 3.4.1 — Ошибка Swagger UI 404: «Нет статического ресурса openapi/api-v1.0.yaml».

Сообщение Anonymous »

После обновления приложения Spring Boot с версии 3.3.7 до 3.4.1 я больше не могу получить доступ к пользовательскому интерфейсу Swagger по адресу http://localhost:8080/swagger-ui/index.html.
Вместо этого я столкнулся со следующими проблемами:
В браузере: «Не удалось загрузить определение API».
В консоли : 404 NOT_FOUND «Нет статического ресурса openapi/api-v1.0.yaml».
Когда я возвращаюсь к Spring Boot 3.3.7, все работает как положено, и пользовательский интерфейс Swagger загружается без любые ошибки.
Мои настройки:
Версия генератора OpenAPI: 7.10.0
Файл OpenAPI находится по адресу: src/main/resources/openapi/api-v1.0.yaml
Вот моя конфигурация пользовательского интерфейса Swagger (swagger-ui-config.js):< /p>

Код: Выделить всё

   const ui = SwaggerUIBundle({
url: "/openapi/api-v1.0.yaml",
dom_id: '#swagger-ui',
deepLinking: true,
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIStandalonePreset
],
plugins: [
SwaggerUIBundle.plugins.DownloadUrl
],
layout: "StandaloneLayout",
oauth2RedirectUrl: window.location.protocol + "//" + window.location.hostname + ":" + window.location.port + "/swagger-ui/oauth2-redirect.html",
withCredentials: true
});

ui.initOAuth({
clientId: "boilerplate-oidc",
scopes: "arca role-ccx-irn76264",
usePkceWithAuthorizationCodeGrant: true
});

window.ui = ui;
}
Конфигурация OpenAPI Gradle:

Код: Выделить всё

    main {
java {
srcDir file("${buildDir}/generated-api/src/main/java")
}
}
}

openApiValidate {
inputSpec = "$rootDir/src/main/resources/openapi/api-v1.0.yaml".toString()
}

openApiGenerate {
templateDir = "$rootDir/src/main/resources/openapi/templates".toString()
generatorName = "spring"
library = "spring-boot"
validateSpec = true
inputSpec = "$rootDir/src/main/resources/openapi/api-v1.0.yaml".toString()
outputDir = "$buildDir/generated-api".toString()
globalProperties = [
apis    : "",
models  : ""
]
configOptions = [
useSpringBoot3         : "true",
reactive               : "true" ...
]
}

task packageDistributionApiV1(type: Zip) {
dependsOn("processResources")
description "Creating ZIP file for API contract"
archiveClassifier = 'api-v1.0'
from("$buildDir/resources/main/openapi/") {
include "api-v1.0.yaml"
}
}

assemble.dependsOn tasks.packageDistributionApiV1
tasks.openApiGenerate.dependsOn tasks.openApiValidate
compileJava.dependsOn tasks.openApiGenerate```
Шаги, которые я попробовал:
Проверил, что файл OpenAPI api-v1.0.yaml существует в правильное местоположение (src/main/resources/openapi/).
Проверил выходные данные сборки, чтобы убедиться, что файл упакован правильно.
Возвратился обратно к Spring Boot 3.3.7, и проблема исчезла.
Вопросы:
Изменился ли способ, которым Spring Boot обслуживает статические ресурсы, в версии 3.4.1?
Требуется ли дополнительная настройка для обслуживания файла OpenAPI в более новой версии?
Как исправить эту проблему, чтобы пользовательский интерфейс Swagger работал в Spring Boot 3.4.1?
Любые идеи или предложения будут рассмотрены очень признателен!

Подробнее здесь: https://stackoverflow.com/questions/793 ... api-v1-0-y
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»