1.导入依赖
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency>
2.添加配置
@Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) // 指定构建api文档的详细信息的方法:apiInfo() .apiInfo(apiInfo()) .select() // 指定要生成api接口的包路径,这里把controller作为包路径,生成controller中的所有接口 .apis(RequestHandlerSelectors.basePackage("com.itcodai.course01.controller")) .paths(PathSelectors.any()) .build(); } /** * 构建api文档的详细信息 * * @return */ private ApiInfo apiInfo() { return new ApiInfoBuilder() // 设置页面标题 .title("Spring Boot集成Swagger2") // 设置接口描述 .description("Spring Boot") // 设置联系方式 .contact(new Contact("jky","https://i-beta.cnblogs.com","")) // 设置版本 .version("1.0") // 构建 .build(); }
注意如果项目中使用fastjson作为json解析器时,会导致swagger页面无法访问,解决方法:https://blog.csdn.net/qq_26769513/article/details/83268011
3.主要的注解
@ApiModel 注解用于实体类,表示对类进行说明,用于参数用实体类接收。 @ApiModelProperty 注解用于实体类中属性,表示对 model 属性的说明或者数据操作更改。 @Api 注解用于类上,表示标识这个类是 swagger 的资源。 @ApiOperation 注解用于方法,表示一个 http 请求的操作。 @ApiParam 注解用于参数上,用来标明参数信息。
4.报错
Illegal DefaultValue null for parameter type integer
java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Long.parseLong(Long.java:601)
at java.lang.Long.valueOf(Long.java:803)
这个需要在对应controller的方法中使用@ApiParam里指定example="0",就可以解决