У меня есть URL-адрес ниже, работающий в моем проекте Spring Boot.
http://localhost:8080/swagger-ui/index.html
Я хотел бы сократить это до чего-то вроде
http://localhost:8080/docs/index.html
Я попробовал добавить
springdoc.swagger-ui-path: /docs/index.html
в мой application.yml, но затем он перенаправит меня на
http://localhost:8006/docs/swagger-ui/index.html
Я также пытался создать собственный контроллер, который перенаправлял бы меня, как показано ниже, но он все равно отправлял меня на ту же ссылку swagger-ui.
public class SwaggerController {
@RequestMapping("/docs/index.html")
public void apiDocumentation(HttpServletResponse response) throws IOException {
response.sendRedirect("/swagger-ui.html");
}
}
с версией Spring-Boot 3.3.0 у меня работает, если я использую @GetMapping("/docs/index.html") и response.sendRedirect("/swagger-ui/index.html"); внутренний контроллер
Вы можете установить URL-адрес входа для пользовательского интерфейса Swagger с помощью свойств (как вы это сделали).
springdoc.swagger-ui.path=/docs
Это сработает, и вы можете, например, предоставить краткую форму http://localhost:8006/docs
в своей документации или на страницах Wiki.
Он перенаправит вызывающего абонента на следующий URL-адрес:
http://localhost:8006/docs/swagger-ui/index.html
Последняя часть приведенного выше URL-адреса жестко закодирована и не может быть изменена в конфигурации.
Я предполагаю, что это намеренное уважение авторских прав команды, создавшей Swagger UI. Точно так же вы не сможете удалить логотип Swagger из сгенерированного HTML.
При возникновении проблем такого типа рекомендуется поделиться версиями, с которыми вы взаимодействуете, чтобы вы могли быть более напористыми. Но взгляните на «springdoc.swagger-ui.disable-swagger-default-url».