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)

  • 相关阅读:
    fork子进程
    多输入使用多线程
    多输入select
    多输入之轮询
    开启telnet
    slickedit编译调试linux应用程序
    电子书框架
    通用Makefile
    STDIN_FILENO和stdin
    libiconv交叉编译提示arm-none-linux-gnueabi-gcc
  • 原文地址:https://www.cnblogs.com/qkhh/p/8607454.html
Copyright © 2011-2022 走看看