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

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

原文地址:https://www.cnblogs.com/jizhong/p/15602785.html