从 Java 项目中提取 Controller 层接口定义为 JSON 数据。
Java API Extractor
功能概述
Java API Extractor是一项面向实际任务的技能,主要用于从 Java Spring Boot 项目中自动提取 Controller 层的接口定义,按照标准 JSON 模版格式输出,用于推送到产品部数据平台或前端数据接口平台;需要从 Java 项目生成接口文档;
核心要点
- 批量提取 Controller 接口定义;
- 接口文档自动化生成;
- 推送接口定义前的数据准备;
使用与执行
扫描 Java 项目中的 Controlle。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
结果检查与注意事项
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
Java API Extractor
从 Java Spring Boot 项目中自动提取 Controller 层的接口定义,按照标准 JSON 模版格式输出,用于推送到产品部数据平台或前端数据接口平台。
触发场景
- 需要从 Java 项目生成接口文档
- 批量提取 Controller 接口定义
- 接口文档自动化生成
- 推送接口定义前的数据准备
核心功能
- 扫描 Java 项目中的 Controller 类
- 解析 Spring MVC 注解(@GetMapping, @PostMapping, @PutMapping, @DeleteMapping 等)
- 提取接口路径、请求方法、参数定义、响应类型
- 解析 Swagger/OpenAPI 注解(@ApiOperation, @ApiParam, @Tag 等)
- 按照标准 JSON 模版格式输出接口数组
输出格式
[
{
"name": "创建用户",
"path": "/api/user",
"method": "POST",
"description": "创建新用户",
"requestParams": [
{
"name": "userName",
"type": "String",
"required": true,
"description": "用户名"
}
],
"responseSchema": {
"type": "object",
"properties": {
"userId": {
"type": "string",
"description": "创建的用户 ID"
}
}
}
}
]
工作流程
- 指定 Java 项目根目录
- 扫描
src/main/java下的 Controller 类 - 解析每个 Controller 的接口注解
- 提取参数信息和响应类型
- 生成标准 JSON 格式输出
- 可选:直接推送到产品部数据平台
使用方式
自然语言(推荐):直接告诉我需求
脚本方式:
# 提取整个项目 py scripts/extract_java_api.py --project "D:workingcodingmsa-icmp-dev-manage" --output api-definitions.json # 提取指定包 py scripts/extract_java_api.py --project "D:workingcodingmsa-icmp-dev-manage" --package "com.example.user.controller" --output user-api.json # 提取并直接推送 py scripts/extract_java_api.py --project "D:workingcodingmsa-icmp-dev-manage" --prdid "PRD-2026-001" --push # 详细模式 py scripts/extract_java_api.py --project "..." --output api.json --verbose
提取指定包
node scripts/extract_java_api.js --project "D:workingcodingmsa-icmp-dev-manage" --package "com.example.user.controller" --output user-api.json
提取并直接推送
node scripts/extract_java_api.js --project "D:workingcodingmsa-icmp-dev-manage" --prdid "PRD-2026-001" --push
**详细模式**: ```bash python3 scripts/extract_java_api.py --project "..." --output api.json --verbose
支持的注解
请求映射
| 注解 | 说明 |
|---|---|
@GetMapping |
GET 请求映射 |
@PostMapping |
POST 请求映射 |
@PutMapping |
PUT 请求映射 |
@DeleteMapping |
DELETE 请求映射 |
@PatchMapping |
PATCH 请求映射 |
@RequestMapping |
通用请求映射 |
@RestController |
REST 控制器标识 |
@Controller |
控制器标识 |
参数注解
| 注解 | 说明 |
|---|---|
@PathVariable |
路径参数 |
@RequestParam |
查询参数 |
@RequestHeader |
请求头参数 |
@RequestBody |
请求体 |
@ModelAttribute |
模型属性 |
文档注解
| 注解 | 说明 |
|---|---|
@ApiOperation |
接口描述(Swagger 2) |
@Operation |
接口描述(OpenAPI 3) |
@ApiParam |
参数描述(Swagger 2) |
@Parameter |
参数描述(OpenAPI 3) |
@Tag |
模块标签 |
@Api |
类级别描述 |
参数类型映射
| Java 类型 | JSON 类型 |
|---|---|
| String | string |
| Integer, int, Long, long | integer |
| Boolean, boolean | boolean |
| Double, double, Float, float | number |
| Date, LocalDateTime | string (date-time) |
| List |
array |
| Object | object |
相关文档
- 接口定义规范
- 推送脚本
技术说明
首选 Python 版本:
- Python 版本 (
extract_java_api.py):默认和首选,功能更完整,提取的接口更多(82 vs 47) - Node.js 版本 (
extract_java_api.js):备用选项,适合没有 Python 环境的场景
两个版本输出格式完全一致,可互换使用。
最佳实践
- 提取前检查:确保项目已编译,依赖完整
- Swagger 优先:有 Swagger 注解时优先使用其描述
- 类级别路径:正确处理
@RequestMapping在类级别的定义 - 参数推断:无注解描述时从字段名和类型推断
- 响应分析:从 Controller 方法返回类型推断响应结构
错误处理
- 语法错误:跳过无法解析的类,记录警告
- 类型缺失:使用 Object 类型占位
- 循环依赖:检测并避免无限递归
- 文件编码:自动检测 UTF-8/GBK
热门AI工具
相关专题
本专题聚焦 Java 企业级系统中的多租户架构设计,讲解数据隔离策略、租户路由机制、数据库分库分表方案以及权限控制模型。通过真实 SaaS 系统案例,帮助开发者构建可扩展的多租户应用架构。
216
2026.06.29
本专题围绕Spring Boot 3中的响应式编程体系展开,系统讲解 WebFlux 的非阻塞模型、Reactive Streams、Mono 与 Flux 使用方式,以及在高并发场景下的性能优势。结合真实后端案例,帮助开发者构建低延迟、高吞吐的响应式服务架构。
180
2026.06.22
本专题围绕 Java 分布式系统中的事务一致性问题展开,系统讲解分布式事务的核心理论与解决方案。内容包括 Seata AT/TCC 模式原理、事务协调机制、服务调用链一致性保障以及高并发场景下的数据一致性设计策略。通过真实微服务案例,帮助开发者构建可靠的分布式事务处理体系。
161
2026.06.16
系统讲解 Java 中消息队列的集成与应用实践,涵盖消息队列的核心概念(生产者/消费者/Topic/Queue/Exchange)、RabbitMQ 的交换机类型与 Spring AMQP 集成、Kafka 分区/副本/消费者组机制与 Spring Kafka 配置、RocketMQ 事务消息与顺序消息、消息可靠投递(确认机制/持久化/重试)、消费端幂等性保障(唯一ID/去重表)、死信队列与延迟消息处理、消息积压监控与扩容策略,帮助开发
235
2026.05.18
系统讲解 Java 项目中缓存技术的选型与实践,涵盖本地缓存方案(HashMap 手动缓存/Guava Cache/Caffeine 高性能缓存)的使用与淘汰策略配置、Redis 数据结构(String/Hash/List/Set/ZSet)在缓存场景的应用、Jedis / Lettuce / Redisson 客户端选型、Spring Cache 注解(@Cacheable/@CachePut/@CacheEvict)的声明式缓存、缓
402
2026.05.15
聚焦 Java 应用的容器化与云原生部署,讲解 Dockerfile 编写规范与 Java 应用镜像构建、多阶段构建(Multi-stage Build)减小镜像体积、Jib / Buildpacks 免 Dockerfile 镜像构建方案、JVM 容器感知参数(-XX:MaxRAMPercentage)配置、Docker Compose 编排多服务(应用 + MySQL + Redis)、容器健康检查与资源限制、Kubernetes
280
2026.05.11
系统讲解 Java 项目构建工具的使用与进阶配置,涵盖 Maven 的 POM 文件结构、生命周期(clean/compile/package/install/deploy)与插件机制、依赖范围(compile/provided/test/runtime)与传递依赖管理、多模块聚合与继承、私有 Nexus 仓库发布,以及 Gradle 的 Groovy / Kotlin DSL 语法、Task 自定义与增量构建、依赖版本目录(Versi
229
2026.05.09
在 Java Stream 基础之上进一步深入函数式编程,涵盖 @FunctionalInterface 注解与自定义函数式接口设计、四种方法引用(静态/实例/对象/构造器)的使用场景、Lambda 中的 effectively final 变量捕获规则、函数组合(andThen/compose)与柯里化技巧、Comparator 链式比较器构建、CompletableFuture 异步函数式编排、Reactor / RxJava 响应
248
2026.05.08
热门下载
相关下载
精品课程
共0课时 | 0人学习
共0课时 | 0人学习
共0课时 | 0人学习
最新文章
