一、使用版本
SpringBoot 2.7.3
Knife4j 3.0.3
二、使用方法
1.导入依赖
<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>3.0.3</version> </dependency>
如果不导入织入包,访问doc.html的时候会报找不到资源的错误
2.编写配置文件
package com.forum.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
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;
/**
*
* @date: 2023/11/7 20:55
* @author: hongdou
*/
@Configuration
@EnableWebMvc
public class WebMvcConfig implements WebMvcConfigurer{
/**
* 通过Knife4j生成管理端接口文档
* @return
*/
@Bean
public Docket docketAdmin() {
ApiInfo apiInfo = new ApiInfoBuilder()
.title("IT技术交流文档")
.version("1.0")
.description("IT技术交流用户端的接口稳定")
.build();
Docket docket = new Docket(DocumentationType.SWAGGER_2)
.groupName("user_管理端接口")
.apiInfo(apiInfo)
.select()
.apis(RequestHandlerSelectors.basePackage("com.forum.controller.user"))
.paths(PathSelectors.any())
.build();
return docket;
}
/**
* 静态资源映射
* @param registry
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry){
registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
3.在代码中使用
@API
@ApiOperation
@ApiModel 【此处未使用】
@ApiModelProperty【此处未使用】
package com.forum.controller.user;
import com.forum.dto.UserDTO;
import com.forum.entity.User;
import com.forum.result.Result;
import com.forum.server.UserService;
import com.forum.vo.UserVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @date: 2023/11/7 13:20
* @author: hongdou
*/
@Slf4j
@Api(tags = "用户登录和注册接口")
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
/**
* 登录功能
* @param userDTO
* @return
*/
@ApiOperation("登录功能")
@PostMapping("/login")
public Result<UserVo> login(@RequestBody UserDTO userDTO){
log.info("{}",userDTO);
User user = userService.login(userDTO);
UserVo userVo = UserVo.builder()
.id(user.getId())
.name(user.getName())
.image(user.getImage())
.token("123454")
.build();
return Result.success(userVo);
}
}
4.测试
访问:http://localhost:8080/doc.html
至此,knife4j的基本使用就介绍完了!!!