swagger 的 pathmapping 配置的理解

1. 首选看源码注释:
/* Extensibility mechanism to add a servlet path mapping, if there is one, to the apis base path. 扩展性机制,用于将servlet路径映射(如果有)添加到API基本路径。
**/

public Docket pathMapping(String path) { this.pathMapping = ofNullable(path);
return this;
}

2.我的理解:
  2.1 它是一个附加虚拟路径,并没有映射产生对应到上@RequestMapping里面的路径。 所以你后端跑,配置上pathMapping用的话会报404.
  2.2 它会作用到生成swagger-doc里的api路径拼接 http://host:port/pathmapping/apiurl。
  2.3 在前后端分离架构上, swagger使用iframe方式嵌套,生成的地址都是前端暴露的地址端口,后端请求转发都需要拼接关键字 “dev-api”
    来标记区别是请求nginx静态资源,然后由proxy判断 关键字转发到后端接口, proxy会rewrite到后端地址+端口时,通常会去掉关键字“dev-api”.所以swagger生成的docs
    如果在此环境下需要配置上pathMapping 让它生成的文档地址里带上 关键字。这样swagger的api也是通过前端端口转发访问到后端了。
  2.4 假如要后端直接访问,那么要去掉 pathMapping. 这个就是经常遇到的问题key.
  
  

  
posted @ 2021-11-11 08:59  断舍离-重学JAVA之路  阅读(2336)  评论(0编辑  收藏  举报