更改 OpenAPI 自动生成的 HomeController
更改 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"; } }
我的技术栈:
- Spring Boot: 2.1.1
- Openapi: 3.0.0
问题的出现原因是希望更改Swagger UI的默认路径,但是使用server.servlet.context-path=/rest
的方法会导致所有路径都以/rest开头。原始解决方法是尝试在HomeController中更改路径,但是该控制器是自动生成的,无法直接更改。
为了解决这个问题,可以参考以下方法:
1. 参考Change location to call swagger-ui in Spring和How 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中的讨论,寻找其他解决方案。