762 Star 6.6K Fork 1.4K

GVP萧明 / knife4j

 / 详情

如何更改访问地址

已完成
创建于  
2019-11-20 10:50

现在默认是/doc.html,想改成其它链接访问,如/api/swagger/index.html,请问能设置吗?

评论 (9)

Flicker 创建了任务

这个和项目本身没啥关系,doc.html只是默认的静态html文件

你后端重写一个路径,重定向一下不就可以了吗?

@萧明 不是,我是希望直接通过 /api/swagger/index.html 访问到文档,而不是访问 /api/swagger/index.html 重定向到 /doc.html,就相当于映射目录。

因为我的项目是前后端分离的,/doc.html 就会直接跳转到前端,只有访问 /api/** 才会走后端项目。

我尝试了:

registry.addResourceHandler("/api/swagger/**").addResourceLocations("classpath:/META-INF/resources/")

使用 /api/swagger/doc.html 能访问,但 swagger-resources/configuration/uiswagger-resources 会404,因为这两个文件好像是通过相对路径访问。

所以不知道我的做法是不是正确的,还望指教。

/doc.html是后端服务提供的静态文件啊 你项目前后端分离的,打包的时候是和后端服务部署在一起的还是分开部署的

如果部署在一起的,doc.html和你前端的文件性质是一样的啊 没什么影响

前后端是分开的,但是nginx配置的是同域访问的,只要域名访问 ${base_url}/api/** 地址则走后端,访问其它地址则走前端。所以访问 /doc.html 会直接转发请求到前端,所以我才想将swagger访问地址改为/api/下的。

可以在nginx哪里配置一个路径地址?

@萧明 nginx配置的话可能还要配置swagger配置文件的路径,稍微有点麻烦。

我再想想其它办法吧,这个也确实和你的项目本身没什么直接关系,谢谢你的解答,麻烦您了,也感谢你做的knife4j。

Flicker 任务状态待办的 修改为已完成
Flicker 任务状态已完成 修改为待办的

因为 knife4j 默认地址是 /doc.html,但我想使用/api/swagger/index.html 访问,可以这样

方法:

1. 映射ui资源

registry.addResourceHandler("/api/swagger/**").addResourceLocations("classpath:/META-INF/resources/")
  registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/")

2. 转发配置文件路径

@Controller
@RequestMapping("/api/swagger")
class SwaggerController {

    @GetMapping("/index.html")
    fun index(): String {
        return "forward:/api/swagger2/doc.html"
    }

    @GetMapping("/swagger-resources/configuration/ui")
    fun configurationUI(): String {
        return "forward:/swagger-resources/configuration/ui"
    }

    @GetMapping("/swagger-resources")
    fun resources(): String {
        return "forward:/swagger-resources"
    }

    @GetMapping("/v2/api-docs")
    fun docs(): String {
        return "forward:/v2/api-docs"
    }
}
Flicker 任务状态待办的 修改为已完成
Flicker 修改了描述

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
118100 xiaoym 1578918321 550698 flickermi 1578927363
Java
1
https://gitee.com/xiaoym/knife4j.git
git@gitee.com:xiaoym/knife4j.git
xiaoym
knife4j
knife4j

搜索帮助