Gdy wywołujesz metodę ComputeRoutes(), musisz określić, które pola chcesz otrzymać 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 sekcji Parametry systemu.
Maska pola
Wartość maski pola to lista ścieżek do pól rozdzielonych przecinkami. Każda ścieżka 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 pola zaczyna się od typu wiadomości odpowiedzi najwyższego poziomu i opcjonalnie jest kontynuowana przez co najmniej jedną kropkę, a następnie nazwę pola następnego poziomu. Ogólnie ścieżki 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ładowa konfiguracja produkcyjna).
X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline
W środowisku produkcyjnym odradzamy używanie maski pola odpowiedzi z symbolem wieloznacznym (*) lub określanie maski pola na najwyższym poziomie (trasy). Wybieranie tylko potrzebnych pól:
Pozwala to naszemu serwerowi zaoszczędzić cykle przetwarzania, dzięki czemu możemy zwracać wyniki z krótszym czasem oczekiwania.
Zapewnia stabilną wydajność w zakresie czasu oczekiwania. W przyszłości możemy dodać więcej pól odpowiedzi, a nowe pola mogą wymagać dodatkowego czasu obliczeniowego. Jeśli wybierzesz wszystkie pola lub wszystkie pola najwyższego poziomu, możesz zauważyć spadek wydajności, ponieważ każde nowe pole, które dodamy, będzie automatycznie uwzględniane w odpowiedzi.
Zmniejsza rozmiar odpowiedzi, co przekłada się na większą przepustowość sieci.
Więcej informacji o tworzeniu ścieżek pól znajdziesz w pliku field_mask.proto.