SpringBoot整合系列-整合Swagger2

原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9959844.html SpringBoot整合Swagger2 步骤 第一步:添加必要的依赖 io.springfox springfox-swagger2 2.7.0 io.springfox springfox-swagger-ui 2.7.0 第二步:添加必要的配置 一般无配置项,必要时可以添加自定义配置项,在配置类中读取 第三步:添加配置类(重点) // swagger2的配置内容仅仅就是需要创建一个Docket实例 @Configuration @EnableSwagger2 //启用swagger2 public class Swagger2Config { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .pathMapping("/") .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.example.springbootdemo")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("springboordemo") .description("Springboot整合Demo") .version("0.0.1") .build(); // 这部分信息其实可以自定义到配置文件中读取 } } 通过@Configuration注解,让Spring-boot来加载该类配置。再通过@EnableSwagger2注解来启用Swagger2Config。 再通过createRestApi方法创建Docket的Bean之后, apiInfo方法用来创建该Api的基本信息(这些基本信息会展现在文档页面中)。 select() 函数返回一个 ApiSelectorBuilder 实例用来控制哪些接口暴露给Swagger2来展现。 一般采用指定扫描的包路径来定义 Swagger会扫描该包下所有Controller定义的API,并产生文档内容(除了被@ApiIgnore指定的请求) 第四步:在Controller和Bean上添加Swagger注解 @RestController @RequestMapping("/user") @Log4j2 @Api(description = "用户接口") public class UserApi { @Autowired private UserService service; @ApiOperation(value = "添加用户", notes = "根据给定的用户信息添加一个新用户",response = ResponseEntity.class,httpMethod = "PATCH") @RequestMapping(value = "/addUser",method = RequestMethod.PATCH) public ResponseEntity addUser(final User user) { log.info("执行添加用户操作"); return service.addUser(user); } @ApiOperation(value = "更新用户状态", notes = "根据给定的用户ID修改用户状态",response = ResponseEntity.class,httpMethod = "POST") @RequestMapping(value = "/updateUser", method = RequestMethod.POST) public ResponseEntity updateUser(final UseState useState, int useId) { log.info("执行修改用户状态操作"); return service.updateUser(User.builder().useState(useState).useId(useId).build()); } @ApiOperation(value = "更新用户手机号", notes = "根据给定的用户ID修改用户手机号",response = ResponseEntity.class,httpMethod = "POST") @RequestMapping(value = "/updateUsePhoneNum", method = RequestMethod.POST) public ResponseEntity updateUsePhoneNum(final String usePhoneNum, int useId) { log.info("执行修改用户手机号操作"); return service.updateUsePhoneNum(User.builder().usePhoneNum(usePhoneNum).useId(useId).build()); } @ApiOperation(value = "删除用户", notes = "根据给定的用户ID删除一个用户",response = ResponseEntity.class,httpMethod = "DELETE") @RequestMapping(value = "/deleteUser", method = RequestMethod.DELETE) public ResponseEntity deleteUser(final int useId) { log.info("执行删除用户操作"); return service.deleteUser(useId); } @ApiOperation(value = "查询用户", notes = "根据给定的用户ID获取一个用户",response = ResponseEntity.class,httpMethod = "GET") @RequestMapping(value = "getUser", method = RequestMethod.GET) public ResponseEntity getUser(final int useId) { log.info("执行查询单个用户操作"); return service.getUser(useId); } @ApiOperation(value = "查询用户", notes = "根据给定的用户信息查询用户",response = ResponseEntity.class,httpMethod = "POST") @RequestMapping(value = "getUsers", method = RequestMethod.POST) public ResponseEntity> getUsers(final User user) { log.info("根据条件查询用户"); return service.getUsers(user); } } @ApiModel(value = "用户模型") public class User { @ApiModelProperty("用户ID") private int useId; @ApiModelProperty("用户姓名") private String useName; @ApiModelProperty("用户性别") private UseSex useSex; @ApiModelProperty("用户年龄") private int useAge; @ApiModelProperty("用户身份证号") private String useIdNo; @ApiModelProperty("用户手机号") private String usePhoneNum; @ApiModelProperty("用户邮箱") private String useEmail; @ApiModelProperty("创建时间") private LocalDateTime createTime; @ApiModelProperty("修改时间") private LocalDateTime modifyTime; @ApiModelProperty("用户状态") private UseState useState; } 第五步:启动应用,浏览器请求 http://localhost:8080/swagger-ui.html 可得到如下界面:https://www.cnblogs.com/V1haoge/p/9959844.html
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信