Place Details(新版)、 Nearby Search(新版)、 Text Search(新版) メソッドを呼び出す場合は、レスポンスで返すフィールドを指定する必要があります。返されるフィールドのデフォルト リストはありません。このリストを省略すると、メソッドはエラーを返します。
サポートされているデータフィールドとそれに対応する SKU の一覧については、プレイス データ フィールド(新規)をご覧ください。各 API に固有のフィールドについては、以下をご覧ください。
フィールドリストを指定するには、レスポンス フィールド マスクを作成します。次に、パラメータ $fields
または fields
を使用するか、HTTP または gRPC ヘッダー X-Goog-FieldMask
を使用して、レスポンス フィールド マスクをいずれかのメソッドに渡します。
フィールド マスキングは、不要なデータをリクエストしないようにするための優れた設計手法です。これにより、不要な処理時間と課金が発生するのを防ぐことができます。
レスポンス フィールド マスクを定義する
レスポンス フィールド マスクは、パスのカンマ区切りのリストです。各パスは、レスポンスの本文内の一意のフィールドを指定します。パスは最上位のレスポンス メッセージから始まり、指定されたフィールドへのパスをドットで区切って使用します。
フィールドパスを次のように作成します。
topLevelField[.secondLevelField][.thirdLevelField][...]
フィールドマスク *
を使用すると、すべてのフィールドをリクエストできます。
フィールド マスクの作成方法については、field_mask.proto をご覧ください。
使用するフィールド マスクを決定する
使用するフィールド マスクを決定する方法は次のとおりです。
- フィールド マスク
*
を使用してすべてのフィールドをリクエストします。 - レスポンスのフィールドの階層を確認し、必要なフィールドを特定します。
- フィールド階層を使用してフィールドマスクを作成します。
Nearby Search(新版)とテキスト検索(新版)のレスポンス フィールド マスクを定義する
Nearby Search(新版)とテキスト検索(新版)は、レスポンスの places
フィールドに Place オブジェクトの配列を返します。これらの API では、places
はレスポンスの最上位フィールドです。
たとえば、テキスト検索(新版)からの完全なレスポンス オブジェクトを表示するには:
curl -X POST -d '{ "textQuery" : "Spicy Vegetarian Food in Sydney, Australia" }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H 'X-Goog-FieldMask: *' \ 'https://places.googleapis.com/v1/places:searchText'
テキスト検索(新版)呼び出しからの完全なレスポンス オブジェクトの形式は次のとおりです。
{ "places": [ { "name": "places/ChIJs5ydyTiuEmsR0fRSlU0C7k0", "id": "ChIJs5ydyTiuEmsR0fRSlU0C7k0", "types": [ "vegetarian_restaurant", "vegan_restaurant", "meal_takeaway", "restaurant", "food", "point_of_interest", "establishment" ], "nationalPhoneNumber": "0433 479 794", "internationalPhoneNumber": "+61 433 479 794", "formattedAddress": "29 King St, Sydney NSW 2000, Australia", "displayName": { "text": "Spiced @ Barangaroo", "languageCode": "en" }, ... }, ... ] }
したがって、これらの API のフィールド マスクは次の形式で指定します。
places[.secondLevelField][.thirdLevelField][...]
formattedAddress
フィールドと displayName
フィールドのみを返す場合は、フィールド マスクを次のように設定します。
places.formattedAddress,places.displayName
displayName
を指定すると、displayName
の text
フィールドと language
フィールドの両方が含まれます。text
フィールドのみを取得する場合は、フィールド マスクを次のように設定します。
places.formattedAddress,places.displayName.text
Place Details(新版)のレスポンス フィールド マスクを定義する
Place Details は、次の形式で単一の Place オブジェクトを返します。
{ "name": "places/ChIJkR8FdQNB0VQRm64T_lv1g1g", "id": "ChIJkR8FdQNB0VQRm64T_lv1g1g", "types": [ "locality", "political" ], "formattedAddress": "Trinidad, CA 95570, USA", "displayName": { "text": "Trinidad", "languageCode": "en" } ... }
したがって、この API のフィールド マスクを指定するには、返す Place オブジェクトのフィールドを指定します。
curl -X GET -H 'Content-Type: application/json' \ -H "X-Goog-Api-Key: API_KEY" \ -H "X-Goog-FieldMask: formattedAddress,displayName" \ https://places.googleapis.com/v1/places/ChIJj61dQgK6j4AR4GeTYWZsKWw
gRPC 呼び出し
gRPC の場合は、レスポンス フィールド マスクを含む変数を設定します。その後、その変数をリクエストに渡すことができます。
const ( fieldMask = "places.formattedAddress,places.displayName" )
フィールドパスに関する考慮事項
レスポンスに必要なフィールドのみを含めます。必要なフィールドのみを返す:
- 処理時間を短縮し、レイテンシの低い結果が返されます。
- 今後 API にレスポンス フィールドが追加され、それらの新しいフィールドに追加の計算時間が必要な場合でも、安定したレイテンシ パフォーマンスが確保されます。すべてのフィールドを選択した場合、または最上位レベルですべてのフィールドを選択した場合、新しいフィールドがすべて自動的にレスポンスに含まれると、パフォーマンスが低下する可能性があります。
- レスポンス サイズが小さくなるため、ネットワーク スループットが向上します。
- 不要なデータをリクエストしないようにすることで、不要な処理時間と請求額を回避できます。