springboot3+Swagger文档knife4j依赖
开发文档:https://doc.xiaominfo.com/docs/quick-start
导入 knife4j 的maven坐标 1,在pom.xml中添加依赖
- <dependency>
- <groupId>com.github.xiaoymin</groupId>
- <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
- <version>4.4.0</version>
- </dependency>
复制代码
- <dependency>
- <groupId>cn.hutool</groupId>
- <artifactId>hutool-all</artifactId>
- <version>5.8.40</version>
- </dependency>
复制代码
2,配置类:
- package com.zidiu.config;
-
- import cn.hutool.core.util.RandomUtil;
- import com.zidiu.interceptor.JwtTokenInterceptor;
- import io.swagger.v3.oas.models.OpenAPI;
- import io.swagger.v3.oas.models.info.Info;
- import io.swagger.v3.oas.models.info.License;
- import lombok.extern.slf4j.Slf4j;
- import org.springdoc.core.customizers.GlobalOpenApiCustomizer;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
- import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-
- import java.util.HashMap;
- import java.util.Map;
-
-
- /**
- * 配置类,注册web层相关组件
- */
- @Slf4j
- @Configuration
-
- public class WebMvcConfiguration implements WebMvcConfigurer {
- @Autowired
- private JwtTokenInterceptor jwtTokenInterceptor;
- /**
- * 注册自定义拦截器
- *
- * @param registry
- */
- public void addInterceptors(InterceptorRegistry registry) {
- log.info("开始注册自定义拦截器...");
- registry.addInterceptor(jwtTokenInterceptor)
- .addPathPatterns("/admin/**")
- .excludePathPatterns("/admin/employee/login");
- }
- /**
- * 根据@Tag 上的排序,写入x-order
- *
- * @return the global open api customizer
- */
- @Bean
- public GlobalOpenApiCustomizer orderGlobalOpenApiCustomizer() {
- return openApi -> {
- if (openApi.getTags()!=null){
- openApi.getTags().forEach(tag -> {
- Map<String,Object> map=new HashMap<>();
- map.put("x-order", RandomUtil.randomInt(0,100));
- tag.setExtensions(map);
- });
- }
- if(openApi.getPaths()!=null){
- openApi.addExtension("x-test123","333");
- openApi.getPaths().addExtension("x-abb",RandomUtil.randomInt(1,100));
- }
-
- };
- }
-
- @Bean
- public OpenAPI customOpenAPI() {
- return new OpenAPI()
- .info(new Info()
- .title("金黑用户系统API")
- .version("1.0")
-
- .description( "Knife4j集成springdoc-openapi示例")
- .termsOfService("http://doc.xiaominfo.com")
- .license(new License().name("Apache 2.0")
- .url("http://doc.xiaominfo.com")));
- }
-
-
-
- }
复制代码 3,yml配置:
- # springdoc-openapi项目配置
- springdoc:
- swagger-ui:
- path: /swagger-ui.html
- tags-sorter: alpha
- #operations-sorter: order
- api-docs:
- path: /v3/api-docs
- group-configs:
- - group: 'default'
- display-name: '后台管理'
- paths-to-match: '/**'
- packages-to-scan: com.zidiu.controller
- default-flat-param-object: true
复制代码 注解:
- package com.zidiu.dto;
-
-
- import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
- import io.swagger.v3.oas.annotations.media.Schema;
- import lombok.Data;
-
- import java.io.Serializable;
-
- @Data
- @Schema(name = "EmployeeLoginDTO", description = "员工登录时传递的数据模型")
- public class EmployeeLoginDTO implements Serializable {
-
- @Schema(name = "username", description = "用户名")
- private String username;
-
- @Schema(name = "password", description = "密码")
- private String password;
-
- }
复制代码
- package com.zidiu.controller.admin;
-
- import com.zidiu.constant.MessageConstant;
- import com.zidiu.dto.EmployeeLoginDTO;
- import com.zidiu.entity.Employee;
- import com.zidiu.result.Result;
- import com.zidiu.service.EmployeeService;
- import com.zidiu.vo.EmployeeLoginVO;
-
- import io.swagger.v3.oas.annotations.Operation;
- import io.swagger.v3.oas.annotations.tags.Tag;
- import lombok.extern.slf4j.Slf4j;
- 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("/admin/employee")
- @Slf4j
- @Tag(name = "员工相关接口")
- public class EmployeeController {
- @Autowired
- private EmployeeService employeeService;
- @Operation(summary = "员工登录", description = "员工登录")
- @PostMapping("/login")
- public Result<EmployeeLoginVO> login(@RequestBody EmployeeLoginDTO employeeLoginDTO) {
- log.info("员工登录:{}", employeeLoginDTO);
- EmployeeLoginVO employeeLoginVO = employeeService.login(employeeLoginDTO);
- if(employeeLoginVO != null){
- return Result.success(employeeLoginVO);
- }
- return Result.error(MessageConstant.ACCOUNT_PASS_ERROR);
- }
- }
复制代码
干货:
jinhei-waimai.zip
(59.39 KB, 下载次数: 0, 售价: 50 金币)
SpringBoot3+SSM的企业级Java项目实战之外卖小程序
|