Java Api Extractor

Polar Sponsor
爱发电 赞助
.NET 9.0

从 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"
        }
      }
    }
  }
]

工作流程

  1. 指定 Java 项目根目录
  2. 扫描 src/main/java 下的 Controller 类
  3. 解析每个 Controller 的接口注解
  4. 提取参数信息和响应类型
  5. 生成标准 JSON 格式输出
  6. 可选:直接推送到产品部数据平台

使用方式

自然语言(推荐):直接告诉我需求

脚本方式:

# 提取整个项目
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

相关专题

更多
IntelliJ IDEA调试技巧汇总
IntelliJ IDEA调试技巧汇总

本合集讲解 IDEA 断点调试、条件断点、远程调试、微服务链路调试、内存快照分析、异常定位高级用法,解决 Java 项目排查难题。

2026.08.11

51

15

Java Spring Boot多租户架构设计与数据隔离实战
Java Spring Boot多租户架构设计与数据隔离实战

本专题聚焦 Java 企业级系统中的多租户架构设计,讲解数据隔离策略、租户路由机制、数据库分库分表方案以及权限控制模型。通过真实 SaaS 系统案例,帮助开发者构建可扩展的多租户应用架构。

2026.06.29

216

13

Java Spring Boot3响应式编程与WebFlux实战
Java Spring Boot3响应式编程与WebFlux实战

本专题围绕Spring Boot 3中的响应式编程体系展开,系统讲解 WebFlux 的非阻塞模型、Reactive Streams、Mono 与 Flux 使用方式,以及在高并发场景下的性能优势。结合真实后端案例,帮助开发者构建低延迟、高吞吐的响应式服务架构。

2026.06.22

180

17

Java分布式事务与Seata实战架构设计
Java分布式事务与Seata实战架构设计

本专题围绕 Java 分布式系统中的事务一致性问题展开,系统讲解分布式事务的核心理论与解决方案。内容包括 Seata AT/TCC 模式原理、事务协调机制、服务调用链一致性保障以及高并发场景下的数据一致性设计策略。通过真实微服务案例,帮助开发者构建可靠的分布式事务处理体系。

2026.06.16

161

12

Java消息队列与异步解耦实战
Java消息队列与异步解耦实战

系统讲解 Java 中消息队列的集成与应用实践,涵盖消息队列的核心概念(生产者/消费者/Topic/Queue/Exchange)、RabbitMQ 的交换机类型与 Spring AMQP 集成、Kafka 分区/副本/消费者组机制与 Spring Kafka 配置、RocketMQ 事务消息与顺序消息、消息可靠投递(确认机制/持久化/重试)、消费端幂等性保障(唯一ID/去重表)、死信队列与延迟消息处理、消息积压监控与扩容策略,帮助开发

2026.05.18

235

29

Java缓存技术与Redis集成教程合集
Java缓存技术与Redis集成教程合集

系统讲解 Java 项目中缓存技术的选型与实践,涵盖本地缓存方案(HashMap 手动缓存/Guava Cache/Caffeine 高性能缓存)的使用与淘汰策略配置、Redis 数据结构(String/Hash/List/Set/ZSet)在缓存场景的应用、Jedis / Lettuce / Redisson 客户端选型、Spring Cache 注解(@Cacheable/@CachePut/@CacheEvict)的声明式缓存、缓

2026.05.15

402

34

Java容器化部署与Docker实践教程合集
Java容器化部署与Docker实践教程合集

聚焦 Java 应用的容器化与云原生部署,讲解 Dockerfile 编写规范与 Java 应用镜像构建、多阶段构建(Multi-stage Build)减小镜像体积、Jib / Buildpacks 免 Dockerfile 镜像构建方案、JVM 容器感知参数(-XX:MaxRAMPercentage)配置、Docker Compose 编排多服务(应用 + MySQL + Redis)、容器健康检查与资源限制、Kubernetes

2026.05.11

280

26

Java Maven/Gradle 构建与依赖管理合集
Java Maven/Gradle 构建与依赖管理合集

系统讲解 Java 项目构建工具的使用与进阶配置,涵盖 Maven 的 POM 文件结构、生命周期(clean/compile/package/install/deploy)与插件机制、依赖范围(compile/provided/test/runtime)与传递依赖管理、多模块聚合与继承、私有 Nexus 仓库发布,以及 Gradle 的 Groovy / Kotlin DSL 语法、Task 自定义与增量构建、依赖版本目录(Versi

2026.05.09

229

25

Java 函数式接口与 Lambda 进阶技巧
Java 函数式接口与 Lambda 进阶技巧

在 Java Stream 基础之上进一步深入函数式编程,涵盖 @FunctionalInterface 注解与自定义函数式接口设计、四种方法引用(静态/实例/对象/构造器)的使用场景、Lambda 中的 effectively final 变量捕获规则、函数组合(andThen/compose)与柯里化技巧、Comparator 链式比较器构建、CompletableFuture 异步函数式编排、Reactor / RxJava 响应

2026.05.08

248

28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
dev.java 官方:Learn Java
dev.java 官方:Learn Java

共0课时 | 0人学习

Java JDBC数据库连接官方教程
Java JDBC数据库连接官方教程

共0课时 | 0人学习