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)
然后运行,最终呈现效果如下: