• Knife4j 自定义参数解析


    Knife4j引入:

     <dependency>
                <groupId>com.github.xiaoymin</groupId>
                <artifactId>knife4j-spring-boot-starter</artifactId>
                <version>${knife4j.version}</version>
            </dependency>
    <knife4j.version>2.0.7</knife4j.version>

    配置:

    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import springfox.documentation.builders.ApiInfoBuilder;
    import springfox.documentation.builders.PathSelectors;
    import springfox.documentation.builders.RequestHandlerSelectors;
    import springfox.documentation.spi.DocumentationType;
    import springfox.documentation.spring.web.plugins.Docket;
    import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
    
    @Configuration
    @EnableSwagger2WebMvc
    public class Knife4jConfiguration {
    
        @Bean(value = "defaultApi2")
        public Docket defaultApi2() {
            Docket docket=new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(new ApiInfoBuilder()
                            //.title("swagger-bootstrap-ui-demo RESTful APIs")
                            .description("# swagger-bootstrap-ui-demo RESTful APIs")
                            //.termsOfServiceUrl("http://www.xx.com/")
                            //.contact("xx@qq.com")
                            .version("1.0")
                            .build())
                    //分组名称
                    .groupName("2.X版本")
                    .select()
                    //这里指定Controller扫描包路径
                    .apis(RequestHandlerSelectors.basePackage("cn.*****.controller"))
                    .paths(PathSelectors.any())
                    .build();
            return docket;
        }
    }

    在实体类上的定义(关键):

    @ApiModel(value="批次",description="批次")
    public class Product extends Model<Product> {
    
        private static final long serialVersionUID = 1L;
    
        @JsonIgnore
        @TableId(value = "id", type = IdType.ASSIGN_ID)
        private String id;
    
        /**
         * mid
         */
        @ApiModelProperty(value = "mid",example = "232232323")
        private String mId;
    }

    备注:@JsonIgnore用来因此api文档上的显示。

    然后在controller中定义:

     @ApiOperation(value = "保存批次")
     @PostMapping("/saveProduct")
     public Result saveProductSensor(@ApiParam(name="product",value="批次实体",required=true) @RequestBody List<Product> product)

    然后运行,最终呈现效果如下:

     

    文章出处:www.cnblogs.com/jizhong

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。否则保留追究法律责任的权利。

  • 相关阅读:
    字符串函数使用与 Culture
    学习 Monitor使用
    Extjs的ajax实现
    linux下tomcat的安装及部署
    使用jquery插件实现打印指定区域功能
    hibernate的各种保存方式的区别 (save,persist,update,saveOrUpdte,merge,flush,lock)等
    html 树形菜单
    Ext4 修复对话框按钮翻译
    spring aop expression简单说明
    tomcat内存溢出的解决方法(java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError:)
  • 原文地址:https://www.cnblogs.com/jizhong/p/15602785.html
Copyright © 2020-2023  润新知