datai/docs/archive/api-docs/2026-01-27-014-2-api.md

7.8 KiB
Raw Blame History

API 文档

元数据

  • 需求编号014-2
  • 创建时间2026-01-27
  • 创建人SSOT 架构师
  • 版本号v1.0.0

API 概述

本 API 提供符号表分析与 DTO 生成功能,利用 Tooling API 的 SymbolTable 功能,解析 Apex 类的内部结构(内部类、方法、变量),为 Java 端自动生成强类型的 DTOData Transfer Object解决 Partner API 只能传输扁平 SObject 的限制。

核心功能包括:

  1. 符号表查询:查询指定 Apex 类的符号表信息
  2. DTO 生成:基于符号表生成 Java DTO 源代码
  3. 批量 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 资源不存在 检查类名是否正确,确保类名存在

相关文档