Gdy wywołujesz metodę ComputeRoutes(), musisz określić pola, które 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 rozdzielona 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 co najmniej 1 kropkę i nazwę pola następnego poziomu. Ogólnie ścieżki do pól są tworzone w ten sposób:
topLevelField[.secondLevelField][.thirdLevelField][...]
Specjalnym 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 zaoszczędzić 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 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.