Unable to infer base url. This is common when using dynamic servlet registration or when the API is behind an API Gateway. The base url is the root of where all the swagger resources are served. For e.g. if the api is available at http://example.org/api/v2/api-docs then the base url is http://example.org/api/. Please enter the location manually: 

在我今天的项目使用Springboot2集成Swagger2时,所有工作完成的差不多,最后在swagger-ui.html时候出现上述弹窗提示。百度之后,有的说在启动类上添加@EnableSwagger2注解就行,实操之后发现然并卵。

经过下午调试发现,原来是我的springboot集成了Spring Security,然后该权限管理框架对swagger-ui.html的页面以及页面资源进行了拦截,只需要在security的配置里面忽略掉对该网页所需要的资源就行了。下面是代码:

.antMatchers("/v2/api-docs",//swagger api json
                            "/swagger-resources/configuration/ui",//用来获取支持的动作
                            "/swagger-resources",//用来获取api-docs的URI
                            "/swagger-resources/configuration/security",//安全选项
                            "/swagger-ui.html",
                            "/webjars/**").permitAll()

 

添加完成之后就可以正常使用swagger了。

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐