当前位置: 首页 > news >正文

【knife4j】接口分组配置;登录拦截器放行;登录拦截器配置token;给全局异常处理类添加注解;解决上传文件不显示文件域;参数扁平化;@Parameter

ParameterParameter是用来为 API 接口参数添加元数据描述信息的注解这些信息最终会生成到 OpenAPI 规范的文档中供 Knife4j/Swagger UI 等工具展示简单来说它让 API 的使用者能清楚地知道每个参数的含义、是否必填、格式要求等Operation(summary 查询指定课程的学习记录) GetMapping(/course/{courseId}) public LearningLessonDTO queryLearningRecordByCourse( PathVariable Parameter(description 课程id, example 2) Long courseId){ return recordService.queryLearningRecordByCourse(courseId); }参数扁平化springdoc: default-flat-param-object: true效果没有添加配置效果接口分组配置088-尚庭公寓-项目开发-后台管理-初始配置-Knife4j_哔哩哔哩_bilibili后台管理系统和移动端接口不同webConfiguration public class Knife4jConfiguration { // 配置了接口文档的基本信息 Bean public OpenAPI customOpenAPI() { return new OpenAPI() .info(new Info() .title(后台管理系统API) .version(1.0) .description(后台管理系统API); } // 下面的Bean对应一个个的接口分组 // Bean public GroupedOpenApi systemAPI() { return GroupedOpenApi.builder().group(系统信息管理). pathsToMatch( /admin/system/** ). build(); } Bean public GroupedOpenApi loginAPI() { return GroupedOpenApi.builder().group(登录管理). pathsToMatch( /admin/login/**, /admin/info). build(); } Bean public GroupedOpenApi apartmentAPI() { return GroupedOpenApi.builder().group(公寓信息管理). pathsToMatch( /admin/apartment/**, /admin/room/**, /admin/label/**, /admin/facility/**, /admin/fee/**, /admin/attr/**, /admin/payment/**, /admin/region/**, /admin/term/**, /admin/file/** ).build(); } Bean public GroupedOpenApi leaseAPI() { return GroupedOpenApi.builder().group(租赁信息管理). pathsToMatch( /admin/appointment/**, /admin/agreement/** ).build(); } Bean public GroupedOpenApi userAPI() { return GroupedOpenApi.builder().group(平台用户管理). pathsToMatch( /admin/user/** ).build(); } }appConfiguration public class Knife4jConfiguration { Bean public OpenAPI customOpenAPI() { return new OpenAPI() .info(new Info() .title(APP接口) .version(1.0) .description(用户端APP接口); } Bean public GroupedOpenApi userAPI() { return GroupedOpenApi.builder().group(用户信息). pathsToMatch(/app/user/**). build(); } Bean public GroupedOpenApi loginAPI() { return GroupedOpenApi.builder().group(登录信息). pathsToMatch(/app/login/**, /app/info). build(); } Bean public GroupedOpenApi personAPI() { return GroupedOpenApi.builder().group(个人信息). pathsToMatch( /app/history/**, /app/appointment/**, /app/agreement/** ). build(); } Bean public GroupedOpenApi lookForRoomAPI() { return GroupedOpenApi.builder().group(找房信息). pathsToMatch( /app/apartment/**, /app/room/**, /app/payment/**, /app/region/**, /app/term/** ). build(); } }登录拦截器放行3.5 访问权限控制 | Knife4j这些是knife4j需要的路径给登录拦截器放行Configuration RequiredArgsConstructor public class WebConfig implements WebMvcConfigurer { private final LoginInterceptor loginInterceptor; Override public void addInterceptors(InterceptorRegistry registry) { // 将拦截器注册到Spring MVC的拦截器链中 registry.addInterceptor(loginInterceptor) .addPathPatterns(/**) .excludePathPatterns( /v3/api-docs/**, /doc.html, /swagger-ui/**, /swagger-resources/** ); } }让接口文档带上token146-尚庭公寓-项目开发-后台管理-系统管理-登录管理-拦截器_哔哩哔哩_bilibili让接口文档在发送测试请求时带上token之后就能通过拦截器的验证这个全局参数只对当前分组生效有多个分组要设置多次参数名称和前端约定好参数值获取真实的token如果是自己生成token为了方便可以调整有效期生成完后再恢复成一小时的有效期需要给全局异常处理类添加注解关于异常java.lang.NoSuchMethodError: ‘void org.springframework.web.method.ControllerAdviceBean.init(ja_java.lang.nosuchmethoderror: void org.springframe-CSDN博客使用Hidden不然接口文档报错// common模块/exception /** * 全局异常处理器 * Knife4jSwagger全局异常添加Hidden防止报错 */ Hidden ControllerAdvice public class GlobalExceptionHandler { ExceptionHandler(Exception.class) ResponseBody public Result handle(Exception e){ e.printStackTrace(); return Result.fail(); } }解决上传文件不显示文件域【Knife4j】解决SpringBoot整合Knife4j 3.0.3 文件上传不显示文件域_knife4j调试文件传参,选不了文件-CSDN博客使用RequestPart我之前使用了RequestParam没用Tag(name 文件管理) RequestMapping(/file) RestController RequiredArgsConstructor public class FileUploadController { private final FileService fileService; Operation(summary 上传文件) PostMapping(upload) public ResultString upload(RequestPart(file) MultipartFile file) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException { String url fileService.uploadFile(file); return Result.ok(url); } }
http://www.rkmt.cn/news/1293239.html

相关文章:

  • closure-compiler-js迁移指南:如何从弃用版本平稳过渡到官方版本
  • 如何在macOS上运行Windows应用:Whisky完整使用指南
  • QuickBMS:开源游戏资源提取引擎的完整解决方案
  • 如何快速安装taskwarrior-tui:5种安装方法全解析
  • openclaw-claude-code:为Claude模型打造代码操作智能体,实现精准项目理解与重构
  • 沃尔玛购物卡回收找对平台安全又省心! - 圆圆收
  • 通过 TaoToken CLI 工具一键配置多开发环境下的模型调用参数
  • 3步解决戴尔笔记本散热难题:DellFanManagement终极指南
  • Cytoscape美化进阶:用cytoNCA等5款核心插件深度分析你的生物网络
  • ElevenLabs法语情感语音合成黑盒拆解:如何通过prosody token注入实现“巴黎左岸咖啡馆式”自然停顿与语调起伏?
  • PSpider最佳实践:从代码规范到部署运维的完整指南
  • Authentication Zero社交登录集成:OmniAuth配置与OAuth2流程
  • 如何在Windows电脑上安装安卓应用:APK Installer完整使用指南
  • LVM数据集准备完全手册:从原始图像到4200亿视觉令牌
  • 为每日更新的内容生成需求设计基于Taotoken多模型的工作流
  • 终极指南:3分钟为Windows创建高性能虚拟显示器
  • Imagine Engine时间线管理:掌握游戏节奏的完整教程 [特殊字符]
  • 浙江依米书院柯桥金地校区暑假班——家门口的学霸孵化器,做社区里最靠谱的教育好邻居 - 浙江教育测评
  • 如何通过3大创新实现高精度纸张智能感知系统?
  • 终极指南:如何在macOS上解锁原生视频预览的全部潜力
  • Linux微信小程序开发终极指南:从零搭建完整开发环境
  • 如何为每日大赛的每个提交自动调用大模型进行初步评审
  • Pearcleaner终极指南:如何彻底清理Mac应用残留的完整方案
  • 在Node.js后端服务中集成Taotoken调用多模型完成内容生成
  • iPhone上跑Linux:用iSH Shell打造随身Python开发环境(附zsh美化与Neovim配置)
  • 别再手动敲Nmap命令了!用Python-nmap库写个自动化扫描脚本(附完整代码)
  • Frontail DevOps集成:如何在CI/CD流水线中实时监控构建日志
  • 别再让定位柱顶飞你的板子!AD2019里用Board Cutout正确挖元器件定位孔(附嘉立创等板厂差异说明)
  • syncpack 迁移指南:从 v13 到 v14 的完整步骤与注意事项
  • AI Agent命令行管理工具agencycli:从部署到复杂工作流编排实战