本文解决 springfox-swagger-ui 在二级目录下的使用问题。如同一个域名的 /user
和 /post
用 Nginx 分别反向代理指向不同的应用,我们希望在每个应用中都可以正常使用 Swagger。
很多人爱折腾,总要找到个办法,甚至很多人会打起修改源码的主意,希望本文能帮你节省点时间。
注意:本文使用的 springfox-swagger2 版本是 2.6.0
修改全局 context path
Spring Boot 环境中只要配置以下环境变量即可:
server.contextPath=/user
那么你的所有的接口,默认就都是在 /user
下面了,自然 swagger-ui 也就能正常使用了,访问 /user/swagger-ui.html
即可。
这是最最简单的方法,不过在有些特定的环境中会有问题,比如我司:
由于设置了 contextPath,那么健康检测接口 /health
也会被自动换为 /user/health
,而我们的发布系统一根筋地要找 /health
接口,也就导致我们的应用会发布不了。
只有在碰到这种方法解决不了的时候,我们才要考虑使用下面介绍的方法。