1

在 Kentico Cloud 中,我得到了一个包含链接项目列表的项目。但是,应该使用 Kentico Cloud Management API 从外部编辑此列表。有没有办法简单地将一个项目添加到这个列表而不更新整个列表?

我正在使用 C# 中的 Kentico Cloud SDK,到目前为止,我尝试使用新的 ContentItemIdentifier.byId 数组更新语言变体,但每当我调用它时,它都会覆盖我已经存在的列表。

private async Task AddOrderToDay(string orderItemExternalId, Guid dayId)
{
    ContentItemVariantIdentifier ident = new ContentItemVariantIdentifier(
        ContentItemIdentifier.ById(dayId),
        LanguageIdentifier.DEFAULT_LANGUAGE);

    UpdateOrdersDay update = new UpdateOrdersDay
    {
        Orders = 
           new[]{ContentItemIdentifier.ByExternalId(orderItemExternalId)}
    };

    ContentItemVariantModel<UpdateOrdersDay> response =
        await this._cmclient.UpsertContentItemVariantAsync(ident, update);
}

我期望我的新元素被添加到 Cloud 中现有的元素列表中。

目前它只是覆盖它们。我尝试了一种解决方法:我调用交付 Api 来接收当前项目并将它们添加到新的新 [] {old1,old2,new ItemIdentifier}。但是,此解决方案的性能不是很好。

4

1 回答 1

0

目前,CM API(包括 v2)不支持逐个添加/删除链接项。

当您从 Delivery API 而不是 CM API 获取项目时,您当前正在做的是最有效的方式。

这可能会在未来发生变化,但现在您必须在保存项目之前提出额外的请求。

于 2019-07-16T08:22:12.380 回答