找回密码
 立即注册
查看: 11|回复: 0

springboot3+Swagger文档knife4j依赖

[复制链接]

106

主题

5

精华

110

金币

技术维护QQ:515138

积分
242
发表于 3 天前 | 显示全部楼层 |阅读模式
springboot3+Swagger文档knife4j依赖
开发文档:https://doc.xiaominfo.com/docs/quick-start
导入 knife4j 的maven坐标
1,在pom.xml中添加依赖
  1. <dependency>
  2.     <groupId>com.github.xiaoymin</groupId>
  3.     <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
  4.     <version>4.4.0</version>
  5. </dependency>
复制代码
  1. <dependency>
  2.                 <groupId>cn.hutool</groupId>
  3.                 <artifactId>hutool-all</artifactId>
  4.                 <version>5.8.40</version>
  5.             </dependency>
复制代码


2,配置类:
1.jpg
  1. package com.zidiu.config;
  2. import cn.hutool.core.util.RandomUtil;
  3. import com.zidiu.interceptor.JwtTokenInterceptor;
  4. import io.swagger.v3.oas.models.OpenAPI;
  5. import io.swagger.v3.oas.models.info.Info;
  6. import io.swagger.v3.oas.models.info.License;
  7. import lombok.extern.slf4j.Slf4j;
  8. import org.springdoc.core.customizers.GlobalOpenApiCustomizer;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.context.annotation.Bean;
  11. import org.springframework.context.annotation.Configuration;
  12. import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
  13. import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
  14. import java.util.HashMap;
  15. import java.util.Map;
  16. /**
  17. * 配置类,注册web层相关组件
  18. */
  19. @Slf4j
  20. @Configuration
  21. public class WebMvcConfiguration implements WebMvcConfigurer {
  22.     @Autowired
  23.     private JwtTokenInterceptor jwtTokenInterceptor;
  24.     /**
  25.      * 注册自定义拦截器
  26.      *
  27.      * @param registry
  28.      */
  29.     public void addInterceptors(InterceptorRegistry registry) {
  30.         log.info("开始注册自定义拦截器...");
  31.         registry.addInterceptor(jwtTokenInterceptor)
  32.                 .addPathPatterns("/admin/**")
  33.                 .excludePathPatterns("/admin/employee/login");
  34.     }
  35.     /**
  36.      * 根据@Tag 上的排序,写入x-order
  37.      *
  38.      * @return the global open api customizer
  39.      */
  40.     @Bean
  41.     public GlobalOpenApiCustomizer orderGlobalOpenApiCustomizer() {
  42.         return openApi -> {
  43.             if (openApi.getTags()!=null){
  44.                 openApi.getTags().forEach(tag -> {
  45.                     Map<String,Object> map=new HashMap<>();
  46.                     map.put("x-order", RandomUtil.randomInt(0,100));
  47.                     tag.setExtensions(map);
  48.                 });
  49.             }
  50.             if(openApi.getPaths()!=null){
  51.                 openApi.addExtension("x-test123","333");
  52.                 openApi.getPaths().addExtension("x-abb",RandomUtil.randomInt(1,100));
  53.             }
  54.         };
  55.     }
  56.     @Bean
  57.     public OpenAPI customOpenAPI() {
  58.         return new OpenAPI()
  59.                 .info(new Info()
  60.                         .title("金黑用户系统API")
  61.                         .version("1.0")
  62.                         .description( "Knife4j集成springdoc-openapi示例")
  63.                         .termsOfService("http://doc.xiaominfo.com")
  64.                         .license(new License().name("Apache 2.0")
  65.                                 .url("http://doc.xiaominfo.com")));
  66.     }
  67. }
复制代码
3,yml配置:
  1. # springdoc-openapi项目配置
  2. springdoc:
  3.   swagger-ui:
  4.     path: /swagger-ui.html
  5.     tags-sorter: alpha
  6.     #operations-sorter: order
  7.   api-docs:
  8.     path: /v3/api-docs
  9.   group-configs:
  10.     - group: 'default'
  11.       display-name: '后台管理'
  12.       paths-to-match: '/**'
  13.       packages-to-scan: com.zidiu.controller
  14.   default-flat-param-object: true
复制代码
注解:
  1. package com.zidiu.dto;
  2. import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
  3. import io.swagger.v3.oas.annotations.media.Schema;
  4. import lombok.Data;
  5. import java.io.Serializable;
  6. @Data
  7. @Schema(name = "EmployeeLoginDTO", description = "员工登录时传递的数据模型")
  8. public class EmployeeLoginDTO implements Serializable {
  9.     @Schema(name = "username", description = "用户名")
  10.     private String username;
  11.     @Schema(name = "password", description = "密码")
  12.     private String password;
  13. }
复制代码
  1. package com.zidiu.controller.admin;
  2. import com.zidiu.constant.MessageConstant;
  3. import com.zidiu.dto.EmployeeLoginDTO;
  4. import com.zidiu.entity.Employee;
  5. import com.zidiu.result.Result;
  6. import com.zidiu.service.EmployeeService;
  7. import com.zidiu.vo.EmployeeLoginVO;
  8. import io.swagger.v3.oas.annotations.Operation;
  9. import io.swagger.v3.oas.annotations.tags.Tag;
  10. import lombok.extern.slf4j.Slf4j;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.web.bind.annotation.PostMapping;
  13. import org.springframework.web.bind.annotation.RequestBody;
  14. import org.springframework.web.bind.annotation.RequestMapping;
  15. import org.springframework.web.bind.annotation.RestController;
  16. @RestController
  17. @RequestMapping("/admin/employee")
  18. @Slf4j
  19. @Tag(name = "员工相关接口")
  20. public class EmployeeController {
  21.     @Autowired
  22.     private EmployeeService employeeService;
  23.     @Operation(summary = "员工登录", description = "员工登录")
  24.     @PostMapping("/login")
  25.     public Result<EmployeeLoginVO> login(@RequestBody EmployeeLoginDTO employeeLoginDTO) {
  26.        log.info("员工登录:{}", employeeLoginDTO);
  27.        EmployeeLoginVO employeeLoginVO = employeeService.login(employeeLoginDTO);
  28.         if(employeeLoginVO != null){
  29.             return Result.success(employeeLoginVO);
  30.         }
  31.         return Result.error(MessageConstant.ACCOUNT_PASS_ERROR);
  32.     }
  33. }
复制代码

游客,如果您要查看本帖隐藏内容请回复

干货:
jinhei-waimai.zip (59.39 KB, 下载次数: 0, 售价: 50 金币)

SpringBoot3+SSM的企业级Java项目实战之外卖小程序



上一篇:nginx反向代理和负载均衡
下一篇:springboot3对象属性拷贝和MD5加密
网站建设,公众号小程序开发,系统定制,软件App开发,技术维护【联系我们】手机/微信:17817817816 QQ:515138

QQ|Archiver|自丢网 ( 粤ICP备2024252464号-1 )

GMT+8, 2025-12-21 16:44

专注于网站建设,公众号小程序制作,商城小程序,系统定制,软件App开发

【联系我们】手机/微信:17817817816 QQ:515138

快速回复 返回顶部 返回列表