zoukankan      html  css  js  c++  java
  • swagger 生成的接口文档,隐藏接口的某个参数

    【问题描述】

    controller 中的处理请求的方法,有时候会添加一些额外的参数。比如下面代码中 UserVo:

    @PostMapping(value = "/add-office-partner")
    public ApiResult addOfficePartner(@RequestBody CreateContactorParam param, @LoginUser UserVo userVo) {
        //...
    }

    使用 swagger 注解接口,在生成的文档中,会把 userVo 也解析到文档里,但实际 userVo 并不属于输入参数。

    在 swagger 中可以通过设置,移除 userVo 这个参数。

    @Configuration
    @EnableSwagger2
    @EnableWebMvc
    public class SwaggerConfig {
        @Bean
        public Docket createRestApi() {
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo())
                    .ignoredParameterTypes(LoginUser.class)
                    .select()
                    .apis(RequestHandlerSelectors.basePackage("xx.xxx.controller"))
                    .paths(PathSelectors.any())
                    .build();
        }
    
        private ApiInfo apiInfo() {
            Contact contact = new Contact("小明", "http://localhost/", "aaa@aa.com");
            return new ApiInfoBuilder()
                    .title("移动端API接口")
                    .description("移动端API接口")
                    .contact(contact)
                    .version("1.0")
                    .build();
        }
    }

    关键语句是 .ignoredParameterTypes(LoginUser.class)

  • 相关阅读:
    KVM虚拟化网卡管理
    KVM虚拟化存储管理
    OpenStack简介
    KVM虚拟机管理
    Jenkins持续集成
    Python函数
    Python文件处理
    Python语句
    Python数据类型的用法
    微信服务号开发小项目总结
  • 原文地址:https://www.cnblogs.com/qkhh/p/8607454.html
Copyright © 2011-2022 走看看