从 Java Spring Boot 项目中自动提取 Controller 层的接口定义,按照标准 JSON 模版格式输出,用于推送到产品部数据平台或前端数据接口平台。
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"
}
}
}
}
]
src/main/java 下的 Controller 类自然语言(推荐):直接告诉我需求
脚本方式:
bash
# 提取整个项目
py scripts/extract_java_api.py --project "D:\working\coding\msa-icmp-dev-manage" --output api-definitions.json
# 提取指定包
py scripts/extract_java_api.py --project "D:\working\coding\msa-icmp-dev-manage" --package "com.example.user.controller" --output user-api.json
# 提取并直接推送
py scripts/extract_java_api.py --project "D:\working\coding\msa-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:\working\coding\msa-icmp-dev-manage" --package "com.example.user.controller" --output user-api.json
node scripts/extract_java_api.js --project "D:\working\coding\msa-icmp-dev-manage" --prdid "PRD-2026-001" --push
text
**详细模式**:
```bash
python3 scripts/extract_java_api.py --project "..." --output api.json --verbose
注解说明@GetMappingGET 请求映射@PostMappingPOST 请求映射@PutMappingPUT 请求映射@DeleteMappingDELETE 请求映射@PatchMappingPATCH 请求映射@RequestMapping通用请求映射@RestControllerREST 控制器标识@Controller控制器标识
注解说明@PathVariable路径参数@RequestParam查询参数@RequestHeader请求头参数@RequestBody请求体@ModelAttribute模型属性
注解说明@ApiOperation接口描述(Swagger 2)@Operation接口描述(OpenAPI 3)@ApiParam参数描述(Swagger 2)@Parameter参数描述(OpenAPI 3)@Tag模块标签@Api类级别描述
Java 类型JSON 类型StringstringInteger, int, Long, longintegerBoolean, booleanbooleanDouble, double, Float, floatnumberDate, LocalDateTimestring (date-time)ListarrayObjectobject
首选 Python 版本:
extract_java_api.py): 默认和首选,功能更完整,提取的接口更多(82 vs 47)extract_java_api.js):备用选项,适合没有 Python 环境的场景两个版本输出格式完全一致,可互换使用。
@RequestMapping 在类级别的定义