3.2 KiB
3.2 KiB
提示词:描述和列出元数据
引用真源
需求描述
根据需求文档和设计文档,实现 Salesforce Metadata API 的描述(Describe)和列出(List)元数据功能,包括:
- DescribeMetadata: 获取 Org 支持的所有元数据类型。
- ListMetadata: 获取指定类型(及文件夹)下的具体元数据成员列表。
- 审计记录: 记录所有查询操作到数据库表
datai_metadata_describe。
设计方案
根据设计文档和决策记录,采用以下技术方案:
- 分层架构: Controller -> Service -> Repository (MyBatis Plus) -> Integration (Salesforce Metadata API)。
- API 交互: 直接使用
metadata.jar中的MetadataConnection进行 API 调用。 - 批量处理: Service 层必须实现
ListMetadata的自动分批逻辑。Salesforce API 限制每次listMetadata调用最多包含 3 个ListMetadataQuery。如果输入列表超过 3 个,Service 层需将其拆分为每组 3 个的子列表,依次调用 API,最后合并结果。 - 审计策略: 同步写入数据库。对于
ListMetadata操作,需为每个查询记录一条审计日志(或根据批次记录,确保数据完整性)。
输出格式要求
- 必须包含以下文件:
- Controller:
MetadataDescribeController.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/controller/MetadataDescribeController.java) - Service:
MetadataDescribeService.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/service/MetadataDescribeService.java) - Mapper:
MetadataDescribeMapper.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/mapper/MetadataDescribeMapper.java) - Entity:
MetadataDescribeEntity.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/domain/MetadataDescribeEntity.java)
- Controller:
- 代码结构要求:
- Controller 使用
@RestController和@RequestMapping("/salesforce/metadata")。 - Service 使用
@Service,并注入MetadataConnectionFactory(fromdatai-salesforce-auth) 和MetadataDescribeMapper。 - Mapper 继承
BaseMapper<MetadataDescribeEntity>(MyBatis Plus)。 - Entity 使用
@TableName("datai_metadata_describe")。
- Controller 使用
代码规范要求
- 命名规范: 遵循 Java 标准驼峰命名。
- 异常处理: 捕获
ConnectionException并抛出SalesforceOperationException。 - 依赖注入: 使用
@Autowired。 - 日志记录: 使用
@Slf4j记录关键步骤和异常。 - 注释: 核心方法(尤其是分批逻辑)必须包含 Javadoc 注释。
测试要求
- 单元测试:
- 测试
describeMetadata正常流程。 - 测试
listMetadata正常流程(<=3 个查询)。 - 测试
listMetadata分批流程(>3 个查询,如 4 个或 10 个)。 - 测试审计日志是否正确写入。
- 测试