Могу ли я получить /swagger-ui.html для перенаправления на /swagger-ui/
В springfogx-swagger-ui 3.0.0 мое приложение Spring Boot заканчивается пользовательским интерфейсом Swagger по адресу . Мои пользователи привыкли видеть этот URL как . Есть ли способ настроить перенаправление или что-то еще, чтобы позволить пользователям, которые «знают» http://myapp.example.com:8080/swagger-ui.htmlhttp://myapp.example.com:8080/swagger-ui.html , перенаправить на «правильный» URL http://myapp.example.com:8080/swagger-ui/http: // myapp. example.com:8080/swagger-ui/ ?
Я получил и чванство, и чванство в "обычной" манере Spring Boot.
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>3.0.0</version>
</dependency>
В любом случае это может быть больше вопрос Spring Boot, чем вопрос Spring Fox. Перенаправление похоже на полное решение.
2 ответа
Да, перенаправление кажется самым простым подходом. Если у вас уже есть настраиваемая конфигурация MVC, вы можете добавить строку addRedirectViewController.
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class MyWebConfig implements WebMvcConfigurer {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addRedirectViewController("/swagger-ui.html", "/swagger-ui/");
}
}
Мех. Это работает.
/**
* Redirects requests for swagger-ui.html to the /swagger-ui/ endpoint.
*/
@ApiIgnore
@RestController
public class SwaggerHtmlRedirector {
@RequestMapping(
method = RequestMethod.GET,
path = "/swagger-ui.html")
public RedirectView redirectWithUsingRedirectView() {
return new RedirectView("/swagger-ui/");
}
}
Источник: https://www.baeldung.com/spring-swagger-hiding-endpoints.
есть что-нибудь получше?