SpringMVC + swagger修改swagger-ui.html的访问路径

文档:SpringMVC集成SwaggerUI修改访问路径
链接:http://note.youdao.com/noteshare?id=752e0c4aa08400155a885965d05dd78b&sub=7842F4CB0FF142069D2101920134586A 

需求

springmvc 加入 swagger 依赖:

    //接入swagger
    compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2'
    compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2'

屋里知道,集成成功以后,访问 http://xxx:8080/swagger-ui.html 就可以了。

如果想要将访问地址更改成:http://xxx:8080/api/swagger/swagger-ui.html

该怎么办呢?

 

思路

swagger-ui.jar包下面,存放着html和js等文件。

项目启动后,访问 http://xxx:8080/ 可以看到,这些文件会存放在webroot目录下面,和WEB-INF同级

SpringMVC + swagger修改swagger-ui.html的访问路径_第1张图片  SpringMVC + swagger修改swagger-ui.html的访问路径_第2张图片

解决

1、swagger的配置和使用就省略啦

2、在mvc的配置文件中增加以下配置:


3、增加一个controller,对一些请求进行转发

@Controller
public class SwaggerController {

    @RequestMapping("/api/swagger/swagger-resources")
    public String resource() {
        return "forward:/swagger-resources";
    }

    @RequestMapping("/api/swagger/swagger-resources/configuration/ui")
    public String ui() {
        return "forward:/swagger-resources/configuration/ui";
    }

    @RequestMapping("/api/swagger/v2/api-docs")
    public String doc() {
        return "forward:/v2/api-docs";
    }
    @RequestMapping("/api/swagger/swagger-resources/configuration/security")
    public String security() {
        return "forward:/swagger-resources/configuration/security";
    }
}

额外:如果想屏蔽之前的 http://xxx:8080/swagger-ui.html 链接,可以 写个方法,response中设置状态码404。

好了,؏؏☝ᖗ乛◡乛ᖘ☝؏؏

参考

https://github.com/springfox/springfox/issues/1080

你可能感兴趣的:(java)