取得するフィールドの選択

ComputeRoutes() メソッドを呼び出すときは、レスポンスで返されるフィールドを指定する必要があります。レスポンス フィールド マスクを使用します。レスポンス フィールド マスクは、URL パラメータ $fields または fields で指定するか、 HTTP/gRPC ヘッダー X-Goog-FieldMask で指定します。詳細については、 システム パラメータをご覧ください。

フィールド マスク

フィールド マスクの値は、フィールド パスのカンマ区切りのリストです。各フィールド パスは、メッセージ階層を表すフィールド名のドット区切りのリストです。フィールド名は、JSON オブジェクト キーまたは protobuf フィールド タグ名です。フィールド パスは、最上位のレスポンス メッセージ タイプから始まり、必要に応じて 1 つ以上のドットが続き、次のレベルのフィールド名が続きます。一般に、フィールド パスは次のように構成されます。

topLevelField[.secondLevelField][.thirdLevelField][...]

特殊なケースのフィールド マスクはワイルドカード「*」で、ルートレベルのすべてのフィールドを選択します。

次の例は、ComputeRoutes() メソッドのフィールド マスクを設定する方法を示しています。

例 1

使用可能なすべてのフィールドのフィールド マスク(手動検査用)。

X-Goog-FieldMask: *

例 2

ルートレベルの所要時間、距離、ポリラインのフィールド マスク(本番環境の設定例)。

X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline

本番環境では、ワイルドカード(*)レスポンス フィールド マスクの使用や、最上位レベル(ルート)でのフィールド マスクの指定はおすすめしません。必要なフィールドのみを選択すると、次のようになります。

  • サーバーで処理サイクルを節約できるため、レイテンシを短縮して結果を返すことができます。

  • レイテンシのパフォーマンスが安定します。今後、レスポンス フィールドが追加される可能性があり、新しいフィールドでは追加の計算時間が必要になる場合があります。すべてのフィールドを選択した場合、または最上位レベルですべてのフィールドを選択した場合、追加された新しいフィールドがレスポンスに自動的に含まれるため、パフォーマンスが低下する可能性があります。

  • レスポンス サイズが小さくなり、ネットワーク スループットが向上します。

フィールド パスの作成方法について詳しくは、 field_mask.proto をご覧ください。