springboot /v2/api-docs 无法访问

一、问题描述

springboot 整合swagger 比较简单,博主的博客中有,还没有整合的可以查阅下,swagger 有两种模式,一种是默认模式,一种是分组模式。

1、分组模式

@Bean
    public Docket loginApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("登录管理")
                .apiInfo(apiInfo())
                .select()
                .paths(loginPaths())
                .build();
    }
    private Predicate<String> loginPaths() {
        return or(
                regex("/login/.*")
        );
    }

分组模式就是在SwaggerConfig 中加入@Bean 注解,就是启用了分组模式,如果都没有@Bean 就是默认模式。

 /v2/api-docs 无法访问。必须加参数 /v2/api-docs?groupName = XXX

2、默认模式,

不需要加@Bean 注解,这样访问 /v2/api-docs 直接可以获取到所有的json数据

二、优雅的swagger界面

1、swagger界面被很多前端的同事吐槽说看不懂,那么它来了!

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要通过代码动态关闭Swagger的/v2/api-docs端点,可以使用Spring Boot的`WebMvcConfigurer`接口来实现。您可以创建一个类,实现`WebMvcConfigurer`接口,并覆盖`addResourceHandlers`方法。在这个方法中,您可以添加一个拦截器,用于阻止对/v2/api-docs的访问。以下是一个示例代码: ``` @Configuration @EnableWebMvc public class SwaggerConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/swagger-ui/**").addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/") .resourceChain(false) .addResolver(new PathResourceResolver() { @Override protected Resource getResource(String resourcePath, Resource location) throws IOException { Resource requestedResource = location.createRelative(resourcePath); return requestedResource.exists() && requestedResource.isReadable() ? requestedResource : new ClassPathResource("/META-INF/resources/webjars/springfox-swagger-ui/index.html"); } }); } @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new HandlerInterceptor() { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { if (request.getRequestURI().equals("/v2/api-docs")) { response.setStatus(HttpServletResponse.SC_NOT_FOUND); return false; } return true; } }); } } ``` 在这个示例中,`addResourceHandlers`方法用于配置Swagger UI的资源处理器,`addInterceptors`方法用于添加一个拦截器,用于阻止对/v2/api-docs的访问。这个拦截器会检查请求的URI是否为/v2/api-docs,如果是,则返回404错误。通过这种方式,就可以在代码中动态关闭Swagger的/v2/api-docs端点了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值