更改 OpenAPI 自动生成的 HomeController

13 浏览
0 Comments

更改 OpenAPI 自动生成的 HomeController

我有一个Open API 3.0的swagger文档。我正在使用Spring的OpenAPI autogen插件来生成API控制器和代理。有一个自动生成的HomeController。代码如下:

/**
 * 将主页重定向到OpenAPI API文档
 */
@Controller
public class HomeController {
    @RequestMapping("/")
    public String index() {
        return "redirect:swagger-ui.html";
    }
}

我能否在我的swagger文档中更改基本路径,以创建一个类似于以下代码的HomeController

@Controller
public class HomeController {
    @RequestMapping("/")
    public String index() {
        return "redirect:/rest/swagger-ui.html";
    }
}

我的技术栈:

  1. Spring Boot: 2.1.1
  2. Openapi: 3.0.0
0
0 Comments

问题的出现原因是希望更改Swagger UI的默认路径,但是使用server.servlet.context-path=/rest的方法会导致所有路径都以/rest开头。原始解决方法是尝试在HomeController中更改路径,但是该控制器是自动生成的,无法直接更改。

为了解决这个问题,可以参考以下方法:

1. 参考Change location to call swagger-ui in SpringHow to change swagger-ui.html default path的讨论和解决方案。

2. 尝试在HomeController中添加以下代码段:

public class HomeController {
    @RequestMapping("/rest")
    public String index() {
        return "redirect:/swagger-ui.html";
    }
}

这样可以将路径/rest重定向到/swagger-ui.html页面。

然而,作者提到HomeController是自动生成的,因此无法直接更改该类。可以参考github.com/OpenAPITools/openapi-generator/issues/5759中的讨论,寻找其他解决方案。

0