调用 ComputeRoutes() 方法时,您必须指定要在响应中返回的字段。您可以通过使用响应字段掩码来执行此操作,该掩码通过 URL 参数 $fields 或 fields 提供,也可以使用
HTTP/gRPC 标头 X-Goog-FieldMask 提供。如需了解详情,请参阅
系统参数。
字段掩码
字段掩码值是以英文逗号分隔的字段路径列表。每个字段路径都是以英文句点分隔的字段名称列表,用于表示消息层次结构。字段名称可以是 JSON 对象键,也可以是 protobuf 字段标记名称。字段路径从顶级响应消息类型开始,可以选择后跟一个或多个英文句点,然后是下一级字段名称。一般来说,字段路径的构造方式如下:
topLevelField[.secondLevelField][.thirdLevelField][...]
一种特殊情况的字段掩码是通配符“*”,它会选择所有根级字段。
示例
以下示例演示了如何为 ComputeRoutes() 方法设置字段掩码。
示例 1
所有可用字段的字段掩码(用于手动检查)。
X-Goog-FieldMask: *
示例 2
路线级时长、距离和折线的字段掩码(生产环境设置示例)。
X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline
我们不建议在生产环境中使用通配符 (*) 响应字段掩码,也不建议在顶级 (routes) 中指定字段掩码。仅选择所需的字段:
可让我们的服务器节省处理周期,从而以更低的延迟返回结果。
确保延迟性能稳定。我们将来可能会添加更多响应字段,而这些新字段可能需要额外的计算时间。如果您选择所有字段,或者在顶级选择所有字段,则可能会遇到性能下降的情况,因为我们添加的任何新字段都会自动包含在您的响应中。
会缩小响应大小,从而提高网络吞吐量。
如需详细了解如何构造字段路径,请参阅 field_mask.proto。