Closed DoraemonAndRat closed 1 year ago
感觉和这个context-path 的issue有关系
https://github.com/xiaoymin/swagger-bootstrap-ui/issues/423
如果项目访问非根目录,而是设置了context-path,knife4j提供的之前版本确实有问题,因为openapi3的规范里面没有basePath的属性定义。
可以试试4.0.0版本的,看看解决了没有
这个issue我先close了,如果后期有问题在新开一个,感谢
版本号:3.0.3
我现在这个项目是针对原生swagger进行微服务整合的(springcloud gateway),具体做法是网关上放一个swagger去访问子服务的swagger,通过swagger右上角不同的tab去访问各自不同的子服务,然后网关通过配置的路由路径访问/[子服务路由]/v3/api-docs,然后由后置拦截器修改这个接口返回servers.url,把服务的路由路径添加到前面,这样就可以修改swagger的inferred url,比如说这里我添加了一个system的路由路径:
这样我使用网关上的swagger的try it out是可以正常通过子路由访问子服务的swagger上的接口的。
然后我在knife上看host显示也是正确的:
但是我使用调试功能的时候发现访问接口并没有使用这个host去访问,而是直接使用了网关地址,缺了子路径,直接就404了。
我尝试使用“个性化设置”里的的host,但是发现这个设置是全局的,并不能通过左上角tab选择各个服务去动态变化(每次切换都换调用/v3/api-docs接口,我在网关拦截器里返回的路由路径会变化)。
有何解决方案?