7.8 KiB
7.8 KiB
API 文档
元数据
- 需求编号:014-2
- 创建时间:2026-01-27
- 创建人:SSOT 架构师
- 版本号:v1.0.0
API 概述
本 API 提供符号表分析与 DTO 生成功能,利用 Tooling API 的 SymbolTable 功能,解析 Apex 类的内部结构(内部类、方法、变量),为 Java 端自动生成强类型的 DTO(Data Transfer Object),解决 Partner API 只能传输扁平 SObject 的限制。
核心功能包括:
- 符号表查询:查询指定 Apex 类的符号表信息
- DTO 生成:基于符号表生成 Java DTO 源代码
- 批量 DTO 生成:批量生成多个 Apex 类的 Java DTO 源代码
接口列表
接口 1:获取符号表
-
功能描述:查询指定 Apex 类的符号表信息,包括内部类、方法、变量等详细信息
-
请求方式:GET
-
请求路径:
/tooling/symbol-table/{className} -
请求参数:
参数名 类型 必填 说明 className String 是 Apex 类名,路径参数 orgType String 是 组织类型,查询参数(如 "source"、"target"、"sandbox"、"production") -
响应参数:
参数名 类型 说明 code Integer 状态码(200 成功,其他失败) msg String 提示信息 data SymbolTableVo 符号表信息 VO 对象 -
SymbolTableVo 对象结构:
字段名 类型 说明 className String 类名 innerClassCount Integer 内部类数量 variableCount Integer 变量数量 methodCount Integer 方法数量 status String 状态 -
成功示例:
{ "code": 200, "msg": "操作成功", "data": { "className": "UserSummary", "innerClassCount": 2, "variableCount": 5, "methodCount": 3, "status": "success" } } -
失败示例:
{ "code": 500, "msg": "获取符号表失败:类名不存在" } -
权限要求:
tooling:symbol-table:query -
日志记录:记录获取符号表的操作日志
接口 2:生成 DTO
-
功能描述:基于指定 Apex 类的符号表生成 Java DTO 源代码
-
请求方式:POST
-
请求路径:
/tooling/symbol-table/generate-dto -
请求参数:
参数名 类型 必填 说明 className String 是 Apex 类名 packageName String 否 包名,默认为 "com.datai.generated" includeInnerClasses boolean 否 是否包含内部类,默认为 true includeMethods boolean 否 是否包含方法,默认为 true orgType String 是 组织类型,查询参数(如 "source"、"target"、"sandbox"、"production") -
请求示例:
{ "className": "UserSummary", "packageName": "com.datai.generated", "includeInnerClasses": true, "includeMethods": true } -
响应参数:
参数名 类型 说明 code Integer 状态码(200 成功,其他失败) msg String 提示信息 data GenerateDtoResponse DTO 生成响应对象 -
GenerateDtoResponse 对象结构:
字段名 类型 说明 className String 类名 javaCode String Java 源代码 filePath String 文件路径(如果保存到文件系统) success boolean 是否成功 message String 提示信息 -
成功示例:
{ "code": 200, "msg": "操作成功", "data": { "className": "UserSummary", "javaCode": "package com.datai.generated;\n\nimport lombok.Data;\n\n@Data\npublic class UserSummary {\n private String userName;\n private BigDecimal totalSales;\n // ...其他字段\n}", "filePath": "datai-salesforce-tooling/src/main/java/com/datai/generated/UserSummary.java", "success": true, "message": "DTO 生成成功" } } -
失败示例:
{ "code": 500, "msg": "生成 DTO 失败:符号表获取失败" } -
权限要求:
tooling:symbol-table:generate -
日志记录:记录生成 DTO 的操作日志
接口 3:批量生成 DTO
-
功能描述:批量生成多个 Apex 类的 Java DTO 源代码
-
请求方式:POST
-
请求路径:
/tooling/symbol-table/generate-dto-batch -
请求参数:
参数名 类型 必填 说明 classNames List 是 Apex 类名列表 packageName String 否 包名,默认为 "com.datai.generated" includeInnerClasses boolean 否 是否包含内部类,默认为 true includeMethods boolean 否 是否包含方法,默认为 true orgType String 是 组织类型,查询参数(如 "source"、"target"、"sandbox"、"production") -
请求示例:
{ "classNames": ["UserSummary", "OrderSummary", "ProductSummary"], "packageName": "com.datai.generated", "includeInnerClasses": true, "includeMethods": true } -
响应参数:
参数名 类型 说明 code Integer 状态码(200 成功,其他失败) msg String 提示信息 data List DTO 生成响应对象列表 -
成功示例:
{ "code": 200, "msg": "操作成功", "data": [ { "className": "UserSummary", "javaCode": "package com.datai.generated;\n\nimport lombok.Data;\n\n@Data\npublic class UserSummary {\n private String userName;\n private BigDecimal totalSales;\n // ...其他字段\n}", "filePath": "datai-salesforce-tooling/src/main/java/com/datai/generated/UserSummary.java", "success": true, "message": "DTO 生成成功" }, { "className": "OrderSummary", "javaCode": "package com.datai.generated;\n\nimport lombok.Data;\n\n@Data\npublic class OrderSummary {\n private String orderId;\n private BigDecimal totalAmount;\n // ...其他字段\n}", "filePath": "datai-salesforce-tooling/src/main/java/com/datai/generated/OrderSummary.java", "success": true, "message": "DTO 生成成功" }, { "className": "ProductSummary", "javaCode": "package com.datai.generated;\n\nimport lombok.Data;\n\n@Data\npublic class ProductSummary {\n private String productId;\n private String productName;\n // ...其他字段\n}", "filePath": "datai-salesforce-tooling/src/main/java/com/datai/generated/ProductSummary.java", "success": true, "message": "DTO 生成成功" } ] } -
失败示例:
{ "code": 500, "msg": "批量生成 DTO 失败:部分类名不存在" } -
权限要求:
tooling:symbol-table:generate -
日志记录:记录批量生成 DTO 的操作日志
错误码
| 错误码 | 说明 | 解决方案 |
|---|---|---|
| 200 | 操作成功 | - |
| 500 | 服务器内部错误 | 检查服务器日志,联系管理员 |
| 401 | 未授权 | 检查用户权限,确保具有相应的权限 |
| 403 | 禁止访问 | 检查用户权限,确保具有相应的权限 |
| 404 | 资源不存在 | 检查类名是否正确,确保类名存在 |