API 批量操作方法详解
1. 批量操作中的字段冲突问题
在批量操作中,当提升字段(hoisted field)与单个请求中设置的字段不同时,会引发一个重要问题。例如,提升的父字段设置为 ChatRoom 1 ,而待创建资源列表中的某个父字段设置为 ChatRoom 2 。按照快速且非部分失败的原则,API 应直接抛出错误并拒绝该请求。这是因为代码中可能存在语义错误,在处理资源组时,不应尝试推断用户意图。若用户想在多个不同资源中改变提升字段,应将提升字段留空或设置为通配符值。
2. 跨父资源的批量操作
2.1 常见需求与错误示例
依赖单个请求列表而非将字段提升到批量请求中的一个常见原因是操作可能属于多个不同父资源的多个资源。例如,以下代码展示了一种支持跨多个不同父资源创建资源的错误方式:
interface Message {
id: string;
title: string;
description: string;
}
interface CreateMessageRequest {
parent: string;
resource: Message;
}
interface BatchCreateMessageRequest {
parents: string[]; // #A
resources: Message[]; // #B
}
这里需要一个资源所属父资源的列表,但由于资源本身没有父字段,所以使用了第二个父资源列表来
订阅专栏 解锁全文
3704

被折叠的 条评论
为什么被折叠?



