Wybierz pola do zwrócenia

Gdy wywołujesz metodę ComputeRoutes(), musisz określić, które pola mają zostać zwrócone w odpowiedzi. Możesz to zrobić, używając maski pola odpowiedzi, którą podajesz za pomocą parametru URL $fields lub fields, albo za pomocą nagłówka HTTP/gRPC X-Goog-FieldMask. Więcej informacji znajdziesz w artykule Parametry systemowe.

Maska pola

Wartość maski pola to lista ścieżek do pól oddzielonych przecinkami. Każda ścieżka do pola to lista nazw pól oddzielonych kropkami, które reprezentują hierarchię wiadomości. Nazwa pola to klucz obiektu JSON lub nazwa tagu pola protobuf. Ścieżka do pola zaczyna się od typu wiadomości odpowiedzi najwyższego poziomu, a następnie opcjonalnie zawiera 1 lub więcej kropek i nazwę pola następnego poziomu. Ogólnie ścieżki do pól są tworzone w ten sposób:

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

Szczególnym przypadkiem maski pola jest symbol wieloznaczny „*”, który wybiera wszystkie pola najwyższego poziomu.

Przykłady

Poniższy przykład pokazuje, jak ustawić maski pól dla metody ComputeRoutes().

Przykład 1

Maska pola wszystkich dostępnych pól (do ręcznego sprawdzenia).

X-Goog-FieldMask: *

Przykład 2

Maska pola czasu trwania, odległości i linii łamanej na poziomie trasy (przykład konfiguracji produkcyjnej).

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

Odradzamy używanie w środowisku produkcyjnym maski pola odpowiedzi z symbolem wieloznacznym (*) lub określanie maski pola na najwyższym poziomie (trasy). Wybieranie tylko potrzebnych pól:

  • Pozwala naszemu serwerowi oszczędzać cykle przetwarzania, co umożliwia nam zwracanie wyników z mniejszym opóźnieniem.

  • Zapewnia stabilne opóźnienie. W przyszłości możemy dodać więcej pól odpowiedzi, a te nowe pola mogą wymagać dodatkowego czasu obliczeń. Jeśli wybierzesz wszystkie pola lub wszystkie pola na najwyższym poziomie, możesz zauważyć spadek wydajności, ponieważ każde nowe pole, które dodamy, zostanie automatycznie uwzględnione w Twojej odpowiedzi.

  • Powoduje zmniejszenie rozmiaru odpowiedzi, co przekłada się na większą przepustowość sieci.

Więcej informacji o tworzeniu ścieżek do pól znajdziesz w pliku field_mask.proto.