使用 FieldMask 更新数据

使用 API 更新代理数据时,您可以选择覆盖整个数据类型或仅覆盖数据类型的特定字段。通常情况下,最好覆盖特定字段,以免因意外覆盖所有数据。如要覆盖特定字段,请为更新请求提供 FieldMask

以下示例展示了如何提供 FieldMask 以更新意图类型的显示名和事件。

REST

patch 方法提供 updateMask 网址查询参数。例如:

?updateMask=displayName,events
    

C#

UpdateIntent 方法提供 updateMask 参数。例如,创建更新掩码:

FieldMask updateMask = new FieldMask();
updateMask.Paths.AddRange(new string[] { "display_name", "events" });
    

Go

UpdateIntent 方法提供 UpdateIntentRequest.UpdateMask 字段。例如,创建更新掩码:

import dialogflowpb "google.golang.org/genproto/googleapis/cloud/dialogflow/v2"
...
updateMask := &dialogflowpb.FieldMask{
  Paths: []string{"display_name", "events"},
}
    

Java

updateIntent 方法提供 UpdateIntentRequest.UpdateMask 字段。例如,创建更新掩码:

FieldMask fieldMask =
  FieldMask.newBuilder()
    .addPaths("display_name")
    .addPaths("events")
    .build();
    

Node.js

updateIntent 函数提供 request.updateMask 参数。例如,创建更新掩码:

var updateMask = {
  'paths': [
    'displayName',
    'events'
  ]
};
    

PHP

UpdateIntent 方法提供 optionalArgs.updateMask 参数。例如,创建更新掩码:

use Google\Protobuf\FieldMask;
...
$updateMask = new FieldMask([
  'paths' => ['displayName', 'events']
]);
    

Python

update_intent 方法提供 update_mask 参数。例如,创建更新掩码:

from google.protobuf import field_mask_pb2
...
update_mask = field_mask_pb2.FieldMask(paths=['display_name', 'events'])
    

Ruby

update_intent 函数提供 update_mask 参数。例如,创建更新掩码:

mask = Google::Protobuf::FieldMask.new
mask.path = ["display_name", "events"]