Jeecg-Boot开放接口开发实战:在Jeecg-Boot的jeecg-system-biz中添加一个cont
- 其他
- 2025-09-21 17:54:02

Jeecg-Boot 开放接口开发实战:在 Jeecg-Boot 的jeecg-system-biz中添加一个controller 实现免鉴权数据接口 一、场景需求分析
在微服务架构中,常需要快速实现以下两类接口:
开放接口:无需登录即可访问(如数据查询、状态检测)鉴权接口:需验证用户身份(如数据修改、敏感操作) 本文将以 SimpleDemoController 为例,演示如何快速实现开放接口,并集成Swagger文档支持。二、工程结构规范
推荐按功能模块组织代码结构:
src/main/java └── org.jeecg.modules.system ├── controller │ └── demo # 按功能创建子包 │ └── SimpleDemoController.java ├── config # 配置文件目录 └── ...开发三原则:
接口路径统一前缀 /api/模块名Controller类名以功能+Controller结尾每个接口添加Swagger注解三、在 IntelliJ IDEA 中创建 SimpleDemoController 步骤 1:定位目标模块
打开 Jeecg-Boot 项目 在 Project 窗口 找到 jeecg-system-biz 模块,如下:
步骤 2:在Controller包下新建 Controller 类右键新建的包路径 选择 New → Java Class 输入类名 SimpleDemoController 使用快捷键 Alt+Insert 添加类注释:
/** * 系统演示接口 * @author 你的名字 * @since 2024-01-01 */ 步骤3:编写核心代码 3.1 基础接口实现 package org.jeecg.modules.system.controller; import org.jeecg mon.api.vo.Result; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @Api(tags = "系统演示接口") @RequestMapping("/system/api/simple") public class SimpleDemoController { /** * 开放接口示例 * 访问路径:/jeecg-boot/system/api/simple/demo */ @GetMapping("/demo") @ApiOperation(value = "简单数据获取", notes = "无需参数,返回动态时间戳") public Result<String> getSimpleData() { return Result.ok("Hello JeecgBoot! Timestamp: " + System.currentTimeMillis()); } }######.2 关键注解解析
注解作用说明必填@RestController声明为RESTful控制器✔️@RequestMapping定义控制器基础路径✔️@GetMapping映射GET请求✔️@ApiSwagger模块分类✔️@ApiOperation接口文档说明推荐四、安全配置要点 4.1 配置免鉴权路径
在 application-dev.yml 中添加白名单:
shiro: excludeUrls: - /system/api/simple/demo # 开放接口路径 - /swagger-ui.html # Swagger文档 - /**/*.js # 静态资源 4.2 访问权限验证 访问开放接口:直接调用未配置的接口:自动跳转登录页(HTTP 401)五、接口测试方案 5.1 Swagger在线测试
访问 http://localhost:8080/jeecg-boot/doc.html 可以看到我们刚才添加的API接口。
5.2 Postman调试 ### 开放接口测试 GET {{host}}/jeecg-boot/system/api/simple/demo Content-Type: application/json ### 错误请求测试(未配置白名单) GET {{host}}/jeecg-boot/system/api/secure-data 5.3 前端调用示例 // Axios调用示例 axios.get('/jeecg-boot/system/api/simple/demo') .then(response => { console.log('接口返回:', response.data); }) .catch(error => { console.error('请求异常:', error); });六、高频问题排查 6.1 接口404错误 检查启动类扫描范围是否包含Controller包确认访问路径包含上下文 /jeecg-boot验证是否存在路径冲突 6.2 Swagger未显示接口 // 检查Swagger配置类 @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("org.jeecg.modules.system.controller")) .paths(PathSelectors.any()) .build(); } 6.3 跨域问题处理
在跨域过滤器添加配置:
config.addAllowedOrigin("*"); config.addAllowedHeader("*"); config.addAllowedMethod("*"); 七、扩展开发建议 接口版本控制:路径添加版本号 /v1/api/...请求日志记录: @AutoLog(value = "demo接口", operateType=1) @GetMapping("/demo") 参数校验机制: public Result<?> getData(@NotBlank String id) { // 业务逻辑 }结语
通过本文的实践,您已掌握Jeecg-Boot开放接口的开发全流程。建议在实际项目中:
严格管理白名单路径生产环境关闭Swagger文档使用HTTPS加密敏感数据传输 扩展阅读: Jeecg-Boot官方开发文档 Spring Boot接口安全最佳实践原创声明:本文为作者实战经验总结,转载请注明出处。技术交流欢迎私信或留言!
Jeecg-Boot开放接口开发实战:在Jeecg-Boot的jeecg-system-biz中添加一个cont由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Jeecg-Boot开放接口开发实战:在Jeecg-Boot的jeecg-system-biz中添加一个cont”