首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

springfox-swagger-ui:如何从全局参数中排除路由

springfox-swagger-ui是一个用于生成和展示API文档的工具,它基于Spring Framework和Swagger构建。

在使用springfox-swagger-ui时,如果我们想要从全局参数中排除某个特定路由,可以按照以下步骤进行操作:

  1. 创建一个实现SwaggerPluginSupport接口的自定义插件类,该类用于自定义Swagger的行为。
  2. 在自定义插件类中,重写apply(ParameterContext)方法,该方法用于过滤全局参数。
  3. apply(ParameterContext)方法中,可以根据需求判断参数的路由路径,如果需要排除该路由,则可以通过设置ParameterContext.getParameterBuilder().hidden(true)将其隐藏。
  4. 将自定义插件类配置到Swagger的Docket中,以启用该插件。

下面是一个示例代码,展示了如何从全局参数中排除特定路由:

代码语言:txt
复制
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spi.service.contexts.ParameterContext;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.spring.web.plugins.SpringfoxWebMvcConfiguration;
import springfox.documentation.swagger.common.SwaggerPluginSupport;

import java.util.ArrayList;
import java.util.List;

public class ExcludeRoutePlugin implements SwaggerPluginSupport {

    public static final String EXCLUDED_ROUTE = "/api/excluded";

    public static void main(String[] args) {
        // 创建自定义插件类的实例
        ExcludeRoutePlugin excludeRoutePlugin = new ExcludeRoutePlugin();

        // 创建Swagger的Docket实例
        Docket docket = new Docket(DocumentationType.SWAGGER_2)
                // 配置自定义插件类
                .extensions(excludeRoutePlugin);

        // 输出Swagger的JSON文档
        SpringfoxWebMvcConfiguration configuration = new SpringfoxWebMvcConfiguration();
        String swaggerJson = configuration.swaggerResources(docket).getBody().toJSONString();
        System.out.println(swaggerJson);
    }

    @Override
    public boolean supports(DocumentationType delimiter) {
        return DocumentationType.SWAGGER_2.equals(delimiter);
    }

    @Override
    public void apply(ParameterContext parameterContext) {
        List<Parameter> parameters = new ArrayList<>(parameterContext.getParameters());
        for (Parameter parameter : parameters) {
            // 判断参数的路由路径是否为需要排除的路由
            if (EXCLUDED_ROUTE.equals(parameterContext.getOperationContext().requestMappingPattern())) {
                // 将参数隐藏
                parameterContext.getParameterBuilder().hidden(true);
            }
        }
    }
}

上述示例代码中,我们创建了一个名为ExcludeRoutePlugin的自定义插件类,并重写了supports(DocumentationType)apply(ParameterContext)方法。在apply(ParameterContext)方法中,通过判断参数的路由路径是否为需要排除的路由(在示例中为/api/excluded),将其隐藏。

可以根据实际情况修改示例代码中的EXCLUDED_ROUTE常量,以及配置Docket时的其它参数(如扫描的包路径、API文档的标题等)。

至于腾讯云相关产品和产品介绍链接地址,由于要求不能直接提及品牌商,建议您通过访问腾讯云官方网站进行相关信息的了解和查询。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 0到1教你学Maven(全网最详细)(九)pom文件依赖管理scope属性如何使用,pom全局配置如何实现,资源插件如何使用

    scope:表示依赖使用的范围,也就是在maven构建项目的那些阶段起作用。...provided: 写了这个,意思是在 编译, 测试 的时候用到这个依赖,在打包, 安装 的时候不需要这个依赖,因为打包 安装的时候,在tomcat里面已经有这些依赖,你不需要再一次打包 我们如何使用呢...3.1.0 servlet.jar provided 提供者 Maven 常用设置 全局变量...(标签名就是变量名) 2.在pom.xml文件的其它位置,使用 ${标签名} 使用变量的值 自定义全局变量一般是定义 依赖的版本号, 当你的项目中要使用多个相同的版本号..., 先使用全局变量定义, 在使用${变量名} 资源插件 ?

    1.8K10

    Swagger 3.0配置整合使用教程

    ▌springfox-swagger 2 SpringBoot项目整合swagger2需要用到两个依赖:springfox-swagger2和springfox-swagger-ui,用于自动生成swagger...springfox-swagger2:这个组件的功能用于帮助我们自动生成描述API的json文件 springfox-swagger-ui:就是将描述API的json文件解析出来,用一种更友好的方式呈现出来...兼容性说明: 需要Java 8 需要Spring5.x(未在早期版本测试) 需要SpringBoot 2.2+(未在早期版本测试) ▌swagger3.0 与2.xx配置差异: 应用主类添加注解@EnableOpenApi...controller类,描述API接口 @ApiOperation:描述接口方法 @ApiModel:描述对象 @ApiModelProperty:描述对象属性 @ApiImplicitParams:描述接口参数..., In.HEADER.toValue()); return Collections.singletonList(apiKey); } /** * 授权信息全局应用

    3.5K10

    思科设备命令那么多,这10个一定是最常用的!

    比如当你不知道命令的下一个参数应该是什么时,也可以使用?命令,例如,你可以输入show ip ?,如果路由器不需要其他命令参数路由器将提供 作为唯一参数。...例如,每次将路由添加到路由器或路由删除时,可以使用命令debug ip routing进行调试。 调试可能很危险,因为它的进程优先于所有其他进程。...学习更多网络技术,欢迎关注公众号【网络技术联盟站】: 8、show ip route 该命令用于显示路由器的路由表,这是路由器可以访问的所有网络的列表、度量标准以及如何到达那里。...在特权模式下,您可以显示任何内容,但不能进行更改,这个模式下输入 config terminal(简写conf t)进入全局配置模式(提示符看起来像 router(config)# )这个模式下,可以更改全局参数...同样全局配置模式,可以使用router {protocol}命令进入路由器配置。 要退出某个模式,可以输入命令exit。

    44740

    玩思科设备,这10个命令一定是“常客”!

    比如当你不知道命令的下一个参数应该是什么时,也可以使用?命令,例如,你可以输入show ip ?,如果路由器不需要其他命令参数路由器将提供 作为唯一参数。...例如,每次将路由添加到路由器或路由删除时,可以使用命令debug ip routing进行调试。 调试可能很危险,因为它的进程优先于所有其他进程。...8、show ip route 该命令用于显示路由器的路由表,这是路由器可以访问的所有网络的列表、度量标准以及如何到达那里。...在特权模式下,您可以显示任何内容,但不能进行更改,这个模式下输入 config terminal(简写conf t)进入全局配置模式(提示符看起来像 router(config)# )这个模式下,可以更改全局参数...同样全局配置模式,可以使用router {protocol}命令进入路由器配置。 要退出某个模式,可以输入命令exit。

    35720

    ssm整合思路与配置详解_接口整合配置

    ▌springfox-swagger 2 SpringBoot项目整合swagger2需要用到两个依赖:springfox-swagger2和springfox-swagger-ui,用于自动生成swagger...springfox-swagger2:这个组件的功能用于帮助我们自动生成描述API的json文件 springfox-swagger-ui:就是将描述API的json文件解析出来,用一种更友好的方式呈现出来...兼容性说明: 需要Java 8 需要Spring5.x(未在早期版本测试) 需要SpringBoot 2.2+(未在早期版本测试) ---- ▌swagger3.0 与2.xx配置差异: 应用主类添加注解...controller类,描述API接口 @ApiOperation:描述接口方法 @ApiModel:描述对象 @ApiModelProperty:描述对象属性 @ApiImplicitParams:描述接口参数...if (ts.length > 0) { return new LinkedHashSet(Arrays.asList(ts)); } return null; } /** * 通用拦截器排除

    79810

    Swagger 3.0 官方教材出炉,野生的可以扔了!

    OAS本身是一个API规范,它用于描述一整套API接口,包括一个接口是哪种请求方式、哪些参数、哪些header等,都会被包括在这个文件。...通常 SpringBoot 项目整合swagger需要用到两个依赖:springfox-swagger2和springfox-swagger-ui,用于自动生成swagger文档。...springfox-swagger2 :这个组件的功能用于帮助我们自动生成描述API的json文件 springfox-swagger-ui :就是将描述API的json文件解析出来,用一种更友好的方式呈现出来...兼容性说明: 需要Java 8 需要Spring5.x(未在早期版本测试) 需要SpringBoot 2.2+(未在早期版本测试) 关注公众号开发者技术前线可以阅读 Java 8+ / Spring..., In.HEADER.toValue()); return Collections.singletonList(apiKey); } /** * 授权信息全局应用

    1.9K20

    Swagger 3.0 官方 starter 诞生了,其它的都可以扔了~

    OAS本身是一个API规范,它用于描述一整套API接口,包括一个接口是哪种请求方式、哪些参数、哪些header等,都会被包括在这个文件。...通常SpringBoot项目整合swagger需要用到两个依赖:springfox-swagger2和springfox-swagger-ui,用于自动生成swagger文档。...springfox-swagger2:这个组件的功能用于帮助我们自动生成描述API的json文件 springfox-swagger-ui:就是将描述API的json文件解析出来,用一种更友好的方式呈现出来..., In.HEADER.toValue()); return Collections.singletonList(apiKey); } /** * 授权信息全局应用...swagger设置,所有拦截器都会自动加swagger相关的资源排除信息 */ @SuppressWarnings("unchecked") @Override public

    1.6K30

    通过 Request 对象实例获取用户请求数据

    而作为最流行的 PHP 框架,Laravel 自然也是为处理用户请求提供了丰富的工具集,收集、验证、到过滤、编排,可谓是一应俱全,接下来,我们将通过三四篇教程的篇幅来为你详细介绍如何在 Laravel...,不过在测试前需要在 app/Http/Middleware/VerifyCsrfToken.php 中间件中将测试路由排除在外,否则会因为 POST 请求触发 CSRF 攻击防护验证而导致请求失败:...这个时候,我们需要显式地通过 获取路由参数值 除了 URL 查询字符串以及表单提交数据之外,你可能会忽视还有一种形式的输入参数,就是路由参数,我们一般显式将其作为控制器方法参数或者定义路由的匿名函数参数传入...作为定义路由的匿名函数参数之间已经见过很多了,这里我们来演示下作为控制器方法参数传入,以及如何通过 Request 对象实例获取。...首先改写 /form 路由定义如下: Route::post('form/{id}', 'RequestController@form'); 然后我们在对应控制器方法传入这个路由参数(要放到 $request

    19.7K30

    给Swagger升级了新版本,没想到居然有这么多坑!

    升级过程遇到了好多坑,不过只要用好Maven,这些都不是个事! 选择升级版本 首先我们选择下需要升级的版本,直接去Maven仓库看下,哪个版本使用的比较多。...com.google.common.collect.FluentIterable Process finished with exit code 1 当有好几个依赖都使用了不同版本的guava包时,Maven是如何选择的呢...ApiModelProperty注解时,作为Long数据类型,如果你不添加example属性,默认值是空字符串,空字符串转型自然就会报NumberFormatException异常; /** * 修改订单费用信息参数...dependency> io.springfox springfox-swagger-ui...getContextByPath("/productCategory/.*")); return result; } } 修改为全部路径即可,这个和旧版有点不同,旧版访问所有接口都会在头信息

    3.3K10

    阿里问题定位神器 Arthas 的骚操作,定位线上BUG,超给力!

    公司有个渠道系统,专门对接三方渠道使用,没有什么业务逻辑,主要是转换报文和参数校验之类的工作,起着一个承上启下的作用。...由于不明确问题的原因,所以用排除法,首先确认服务器网络是否有问题。...是否有一个全局视角来查看系统的运行状况? 有什么办法可以监控到JVM的实时运行状态? 上面是Arthas的官方简介,这次我只需要用他的一个小功能trace。...本地测试后已经可以排除spring mvc的问题了,最后也是唯一可能出问题的点就是tomcat 可是本人并不熟悉tomcat的源码,就连请求入口都不清楚,tomcat里需要trace的类都不好找。。。...= null) { e.attr = man.getAttributes(name); } return e; } 这个createZipEntry有个name参数注释上看

    1.3K30
    领券