0

在 springfogx-swagger-ui 3.0.0 中,我的 Spring Boot 应用程序以http://myapp.example.com:8080/swagger-ui/上的 Swagger UI 结束。我的用户习惯于将该 URL 视为http://myapp.example.com:8080/swagger-ui.html。有没有办法可以设置重定向或其他方式让“知道” http://myapp.example.com:8080/swagger-ui.html的用户被路由到“正确”的 URL http://myapp。 example.com:8080/swagger-ui/

我以“通常”的 Spring Boot 方式同时获得了 swagger 和 swagger-ui

        <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 Fox 问题更多的 Spring Boot 问题。重定向似乎是无忧无虑的完整解决方案。

4

2 回答 2

1

是的,重定向似乎是最简单的方法。如果您已经有一个自定义 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/");
    }

}
于 2021-08-22T16:05:45.207 回答
0

嗯。这行得通。


/**
 * 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

有更好的吗?

于 2021-08-20T21:11:03.147 回答