快速集成Knife4j

1.引入依赖

<dependency>
     <groupId>com.github.xiaoymin</groupId>
     <artifactId>knife4j-spring-boot-starter</artifactId>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
</dependency>

2.配置类

package com.heima.common.swagger;

import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
@EnableKnife4j
@Import(BeanValidatorPluginsConfiguration.class)
public class Swagger2Configuration {

    @Bean(value = "defaultApi2")
    public Docket defaultApi2() {
        Docket docket=new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                //分组名称
                .groupName("1.0")
                .select()
                //这里指定Controller扫描包路径
                .apis(RequestHandlerSelectors.basePackage("com.heima"))
                .paths(PathSelectors.any())
                .build();
        return docket;
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("黑马头条API文档")
                .description("黑马头条API文档")
                .version("1.0")
                .build();
    }
}

3.在需要的地方加上注解

  • 实体类

    package com.heima.model.common.user.dto;
    
    import io.swagger.annotations.ApiModelProperty;
    import lombok.Data;
    
    @Data
    public class LoginDto {
    
        @ApiModelProperty(value = "手机号",required = true)
        private String phone;
        @ApiModelProperty(value = "密码",required = true)
        private String password;
    }
    
  • Controller

    package com.heima.user.controller.v1;
    
    import com.heima.model.common.dtos.ResponseResult;
    import com.heima.model.common.user.dto.LoginDto;
    import com.heima.user.service.ApUserService;
    import io.swagger.annotations.Api;
    import io.swagger.annotations.ApiOperation;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestBody;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    @RequestMapping("/api/v1/login")
    @Api(value = "APP端用户登录",tags = "APP端用户登录")
    public class LoginController {
    
        @Autowired
        ApUserService apUserService;
    
        @PostMapping("/login_auth")
        @ApiOperation("用户登录功能")
        private ResponseResult login(@RequestBody LoginDto dto) {
            return apUserService.login(dto);
        }
    
    }
    

4.配置信息

resources中新建META-INF文件夹新建配置文件spring.factories添加配置

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
  com.heima.common.swag.Swagger2Configuration

直接打开网址

http://localhost:一个启动的端口号/doc.html

http://localhost:51803/doc.html#/1.0/wm-news-controller/findAllUsingPOST

5.完成

在这里插入图片描述