第一步:添加依赖
<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>
第二步:添加配置文件
package com.example.lianxi.demo.config; import io.swagger.annotations.ApiOperation; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.RequestHandler; 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.EnableSwagger2; @Configuration @EnableSwagger2 @ConditionalOnProperty(name = "swagger.enable", havingValue = "false")//通过配置文件是否开启swagger,生成环境一般不开启 public class SwaggerConfigure { @Bean public Docket createDocket(){ Docket docket = new Docket(DocumentationType.SWAGGER_2); docket .select() .paths(PathSelectors.any()) .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) .build(); return docket; } }
第三步:访问
http://localhost:8081/swagger-ui.html
第四步:常用注解
@Api 用在请求的类上,表示对类的说明
@ApiOperation 用在请求的方法上
@ApiImplicitParams 用在请求的方法上,表示一组参数说明
@ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面
@ApiModel 用在请求的类上,表示对类的说明
@ApiResponses用在请求的方法上,表示一组响应
@ApiParam 用在请求方法中,描述参数信息
例子:
@RestController @RequestMapping("/kettle") @Api(tags = "kettle调度任务") public class KettleDispatchController {}
/** * 调度作业 */ @GetMapping("/job") @ApiOperation(value = "调度作业") public BaseResponse job(@RequestParam("jobName") String jobName) { dispatchJobService.runJob(jobName); return BaseResponse.success(null); }
@Data @ApiModel(value="ConsultProject对象",description="项目留言") public class ConsultProjectDto implements Serializable { /** * 公司名称 */ @ApiModelProperty(value="公司名称",example="百度") private String companyName; /** * 联系人 */ @ApiModelProperty(value="联系人",example="张三") private String contactsName; /** * 联系人电话 */ @ApiModelProperty(value="联系人电话",example="18709980921") private String contactsPhone; /** * 咨询标题 */ @ApiModelProperty(value="咨询标题",example="标题1") private String consultTitle; /** * 咨询内容 */ @ApiModelProperty(value="咨询内容",example="内容") private String consultContent; /** * 咨询对象 */ @ApiModelProperty(value="咨询对象",example="某老师") private String consultMan; /** * 价格 */ @ApiModelProperty(value="价格",example="100") private String price; /** * 成本项目id */ @ApiModelProperty(value="成本项目id") private String topicInfoId; // /** // * 创建人 // */ // private String createBy; // // /** // * 创建时间 // */ // @CreatedDate // private LocalDateTime createDate; // // /** // * 更新人 // */ // private String updateBy; // // /** // * 更新时间 // */ // private LocalDateTime updateDate; }