datai/datai-scenes/datai-scene-salesforce/docs/api-docs/2026-02-05-004-03-api.md

13 KiB
Raw Permalink Blame History

API 文档

元数据

  • 需求编号004-03
  • 创建时间2026-02-05
  • 创建人AI Assistant
  • 版本号v1.0.0
  • 状态:已完成

API 概述

本文档描述 Tooling API 开发工具功能的 REST API 接口,提供 Salesforce 开发工具集的查询功能,包括代码覆盖率查询、测试队列管理、日志获取和成员查询等。

基础路径/api/tooling/devtools

认证方式JWT Token通过 Header 传递)

接口列表

1. 查询代码覆盖率

功能描述:查询 Apex 类/触发器的代码覆盖率信息

  • 请求方式GET
  • 请求路径/api/tooling/devtools/code-coverage
  • 请求参数
参数名 类型 必填 说明
orgType String ORG 类型source/target
classOrTriggerName String 类或触发器名称(模糊查询)
classOrTriggerId String 类或触发器 ID
namespace String 命名空间前缀
pageNum Integer 页码,默认 1
pageSize Integer 每页大小,默认 10
  • 响应参数
参数名 类型 说明
code Integer 状态码200 成功,其他失败)
msg String 提示信息
data Object 响应数据
data.total Long 总记录数
data.rows Array 代码覆盖率列表
data.rows[].apexClassOrTriggerId String 类或触发器 ID
data.rows[].apexClassOrTriggerName String 类或触发器名称
data.rows[].coverage Double 覆盖率百分比
data.rows[].numLinesCovered Integer 已覆盖行数
data.rows[].numLinesUncovered Integer 未覆盖行数
  • 成功示例
{
  "code": 200,
  "msg": "操作成功",
  "data": {
    "total": 2,
    "rows": [
      {
        "apexClassOrTriggerId": "01p5g00000XxXxXxXx",
        "apexClassOrTriggerName": "AccountTrigger",
        "coverage": 85.5,
        "numLinesCovered": 120,
        "numLinesUncovered": 20
      },
      {
        "apexClassOrTriggerId": "01p5g00000YyYyYyYy",
        "apexClassOrTriggerName": "ContactController",
        "coverage": 92.0,
        "numLinesCovered": 230,
        "numLinesUncovered": 20
      }
    ]
  }
}
  • 错误码
    • TOOLING_DEVTOOLS_001查询条件不能为空
    • TOOLING_DEVTOOLS_002获取 Tooling 连接失败
    • TOOLING_DEVTOOLS_003查询代码覆盖率失败

2. 查询测试队列项

功能描述查询测试队列项ApexTestQueueItem信息

  • 请求方式GET
  • 请求路径/api/tooling/devtools/test-queue-items
  • 请求参数
参数名 类型 必填 说明
orgType String ORG 类型source/target
status String 状态Queued/Processing/Completed/Failed/Aborted
apexClassId String Apex 类 ID
parentJobId String 父作业 ID
pageNum Integer 页码,默认 1
pageSize Integer 每页大小,默认 10
  • 响应参数
参数名 类型 说明
code Integer 状态码200 成功,其他失败)
msg String 提示信息
data Object 响应数据
data.total Long 总记录数
data.rows Array 测试队列项列表
data.rows[].apexClassId String Apex 类 ID
data.rows[].apexClassName String Apex 类名称
data.rows[].status String 状态
data.rows[].extendedStatus String 扩展状态
data.rows[].methodNames String 方法名列表
data.rows[].createdDate String 创建时间
data.rows[].parentJobId String 父作业 ID
  • 成功示例
{
  "code": 200,
  "msg": "操作成功",
  "data": {
    "total": 1,
    "rows": [
      {
        "apexClassId": "01p5g00000XxXxXxXx",
        "apexClassName": "AccountControllerTest",
        "status": "Completed",
        "extendedStatus": "Success",
        "methodNames": "testCreateAccount,testUpdateAccount",
        "createdDate": "2026-02-05T10:30:00.000Z",
        "parentJobId": "7075g00000YyYyYyYy"
      }
    ]
  }
}
  • 错误码
    • TOOLING_DEVTOOLS_002获取 Tooling 连接失败
    • TOOLING_DEVTOOLS_004查询测试队列项失败

3. 查询 Apex 日志

功能描述:查询 Apex 日志信息

  • 请求方式GET
  • 请求路径/api/tooling/devtools/apex-logs
  • 请求参数
参数名 类型 必填 说明
orgType String ORG 类型source/target
application String 应用名称
location String 位置
operation String 操作
status String 状态
startTime String 开始时间ISO 8601 格式)
endTime String 结束时间ISO 8601 格式)
pageNum Integer 页码,默认 1
pageSize Integer 每页大小,默认 10
  • 响应参数
参数名 类型 说明
code Integer 状态码200 成功,其他失败)
msg String 提示信息
data Object 响应数据
data.total Long 总记录数
data.rows Array Apex 日志列表
data.rows[].id String 日志 ID
data.rows[].application String 应用名称
data.rows[].durationMilliseconds Integer 持续时间(毫秒)
data.rows[].location String 位置
data.rows[].logLength Integer 日志长度
data.rows[].operation String 操作
data.rows[].startTime String 开始时间
data.rows[].status String 状态
  • 成功示例
{
  "code": 200,
  "msg": "操作成功",
  "data": {
    "total": 1,
    "rows": [
      {
        "id": "07L5g00000XxXxXxXx",
        "application": "Data Loader",
        "durationMilliseconds": 1250,
        "location": "System",
        "logLength": 10240,
        "operation": "executeAnonymous",
        "startTime": "2026-02-05T10:30:00.000Z",
        "status": "Success"
      }
    ]
  }
}
  • 错误码
    • TOOLING_DEVTOOLS_002获取 Tooling 连接失败
    • TOOLING_DEVTOOLS_005查询 Apex 日志失败

4. 查询 Apex 类成员

功能描述:查询 Apex 类成员ApexClassMember信息

  • 请求方式GET
  • 请求路径/api/tooling/devtools/apex-class-member
  • 请求参数
参数名 类型 必填 说明
orgType String ORG 类型source/target
contentEntityId String 内容实体 ID
pageNum Integer 页码,默认 1
pageSize Integer 每页大小,默认 10
  • 响应参数
参数名 类型 说明
code Integer 状态码200 成功,其他失败)
msg String 提示信息
data Object 响应数据
data.total Long 总记录数
data.rows Array 成员列表
data.rows[].id String 成员 ID
data.rows[].body String 成员内容
data.rows[].bodyCrc Long 内容 CRC 校验值
data.rows[].contentEntityId String 内容实体 ID
data.rows[].contentType String 内容类型
data.rows[].symbolTable String 符号表
  • 成功示例
{
  "code": 200,
  "msg": "操作成功",
  "data": {
    "total": 1,
    "rows": [
      {
        "id": "4005g00000XxXxXxXx",
        "body": "public class AccountController { ... }",
        "bodyCrc": 1234567890,
        "contentEntityId": "01p5g00000XxXxXxXx",
        "contentType": "ApexClass",
        "symbolTable": "{...}"
      }
    ]
  }
}
  • 错误码
    • TOOLING_DEVTOOLS_002获取 Tooling 连接失败
    • TOOLING_DEVTOOLS_006查询 Apex 类成员失败

5. 查询 Apex 触发器成员

功能描述:查询 Apex 触发器成员ApexTriggerMember信息

  • 请求方式GET
  • 请求路径/api/tooling/devtools/apex-trigger-member
  • 请求参数
参数名 类型 必填 说明
orgType String ORG 类型source/target
contentEntityId String 内容实体 ID
pageNum Integer 页码,默认 1
pageSize Integer 每页大小,默认 10
  • 响应参数:同"查询 Apex 类成员"

  • 错误码

    • TOOLING_DEVTOOLS_002获取 Tooling 连接失败
    • TOOLING_DEVTOOLS_007查询 Apex 触发器成员失败

6. 查询 Visualforce 页面成员

功能描述:查询 Visualforce 页面成员ApexPageMember信息

  • 请求方式GET
  • 请求路径/api/tooling/devtools/apex-page-member
  • 请求参数
参数名 类型 必填 说明
orgType String ORG 类型source/target
contentEntityId String 内容实体 ID
pageNum Integer 页码,默认 1
pageSize Integer 每页大小,默认 10
  • 响应参数:同"查询 Apex 类成员"

  • 错误码

    • TOOLING_DEVTOOLS_002获取 Tooling 连接失败
    • TOOLING_DEVTOOLS_008查询 Visualforce 页面成员失败

7. 查询组件成员

功能描述查询组件成员ApexComponentMember信息

  • 请求方式GET
  • 请求路径/api/tooling/devtools/apex-component-member
  • 请求参数
参数名 类型 必填 说明
orgType String ORG 类型source/target
contentEntityId String 内容实体 ID
pageNum Integer 页码,默认 1
pageSize Integer 每页大小,默认 10
  • 响应参数:同"查询 Apex 类成员"

  • 错误码

    • TOOLING_DEVTOOLS_002获取 Tooling 连接失败
    • TOOLING_DEVTOOLS_009查询组件成员失败

8. 查询操作日志

功能描述:查询开发工具操作日志

  • 请求方式GET
  • 请求路径/api/tooling/devtools/operation-logs
  • 请求参数
参数名 类型 必填 说明
operationType String 操作类型QUERY_CODE_COVERAGE/QUERY_TEST_QUEUE/QUERY_APEX_LOG/QUERY_MEMBER
metadataType String 元数据类型
status String 状态SUCCESS/FAILED
startTime String 开始时间ISO 8601 格式)
endTime String 结束时间ISO 8601 格式)
pageNum Integer 页码,默认 1
pageSize Integer 每页大小,默认 10
  • 响应参数
参数名 类型 说明
code Integer 状态码200 成功,其他失败)
msg String 提示信息
data Object 响应数据
data.total Long 总记录数
data.rows Array 操作日志列表
data.rows[].id Long 日志 ID
data.rows[].operationType String 操作类型
data.rows[].metadataType String 元数据类型
data.rows[].metadataId String 元数据 ID
data.rows[].metadataName String 元数据名称
data.rows[].queryCondition String 查询条件
data.rows[].resultCount Integer 结果数量
data.rows[].status String 状态
data.rows[].errorCode String 错误码
data.rows[].errorMessage String 错误消息
data.rows[].operationTime String 操作时间
data.rows[].userId Long 用户 ID
  • 成功示例
{
  "code": 200,
  "msg": "操作成功",
  "data": {
    "total": 1,
    "rows": [
      {
        "id": 1,
        "operationType": "QUERY_CODE_COVERAGE",
        "metadataType": "ApexCodeCoverage",
        "metadataId": null,
        "metadataName": "AccountTrigger",
        "queryCondition": "ApexClassOrTrigger.Name LIKE '%AccountTrigger%'",
        "resultCount": 2,
        "status": "SUCCESS",
        "errorCode": null,
        "errorMessage": null,
        "operationTime": "2026-02-05T10:30:00.000",
        "userId": 1
      }
    ]
  }
}
  • 错误码
    • TOOLING_DEVTOOLS_010查询操作日志失败

错误码

错误码 说明
TOOLING_DEVTOOLS_001 查询条件不能为空
TOOLING_DEVTOOLS_002 获取 Tooling 连接失败
TOOLING_DEVTOOLS_003 查询代码覆盖率失败
TOOLING_DEVTOOLS_004 查询测试队列项失败
TOOLING_DEVTOOLS_005 查询 Apex 日志失败
TOOLING_DEVTOOLS_006 查询 Apex 类成员失败
TOOLING_DEVTOOLS_007 查询 Apex 触发器成员失败
TOOLING_DEVTOOLS_008 查询 Visualforce 页面成员失败
TOOLING_DEVTOOLS_009 查询组件成员失败
TOOLING_DEVTOOLS_010 查询操作日志失败
TOOLING_DEVTOOLS_011 记录操作日志失败

相关文档