Gdy wywołujesz metodę ComputeRoutes()
, musisz określić, które pola mają być zwracane w odpowiedzi. Możesz to zrobić, używając maski pola odpowiedzi, którą podajesz za pomocą parametru URL $fields
lub fields
, albo używając 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 rozdzielonych 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. Ścieżki pól są zwykle 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
Nie zalecamy używania w środowisku produkcyjnym maski pola odpowiedzi z symbolem wieloznacznym (*) ani określania maski pola na najwyższym poziomie (trasy). Wybieranie tylko potrzebnych pól:
Umożliwia naszemu serwerowi oszczędzanie cykli przetwarzania, co pozwala nam zwracać wyniki z mniejszym opóźnieniem.
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 obliczeń. Jeśli wybierzesz wszystkie pola lub wszystkie pola na najwyższym poziomie, może to spowodować spadek wydajności, ponieważ każde nowe pole, które dodamy, zostanie automatycznie uwzględnione 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.