W tym dokumencie opisujemy sposoby znajdowania informacji o zadaniach z serwera lub przeglądarki. Fleet Engine obsługuje 2 sposoby znajdowania zadań:
Wyszukiwanie zadań: zadania możesz wyszukiwać według tych identyfikatorów:
- Identyfikator zadania: używany przez użytkowników, takich jak operatorzy floty, którzy mają dostęp do pełnego lub widoku danych o zadaniach.
- Identyfikator śledzenia: używany przez oprogramowanie Twojego klienta do podawania ograniczonych informacji do użytkownika, na przykład gdy spodziewasz się dostarczenia przesyłki do domu.
Pamiętaj, aby znać różnicę między identyfikatorem zadania a zadaniem identyfikatora śledzenia. Są to jednak różne rzeczy. Zobacz Podstawowe pola zadań w Przewodnik po zaplanowanych zadaniach.
Wyświetlanie listy zadań: szeroki dostęp do zadań przeznaczony tylko dla zaufanych użytkowników.
wyszukiwać zadania,
W tej sekcji dowiesz się, jak wyszukiwać zadania według identyfikatora zadania lub identyfikatora śledzenia. Zawiera następujące wymagania:
Wyszukiwania według identyfikatora śledzenia muszą być zgodne z regułami widoczności określone w regułach widoczności śledzonych obiektów.
Aby ograniczyć zagrożenia bezpieczeństwa, używaj najwęższego tokena. Jeśli na przykład token klienta dostarczania, wszystkie połączenia należy podać wyłącznie istotne informacje dotyczące danego użytkownika, takie jak firma kurierska czy odbiorcy przesyłki. Fleet Engine usuwa wszystkie pozostałe informacje odpowiedzi. Więcej informacji o tokenach znajdziesz w artykule Tokeny internetowe JSON.
Wyszukaj zadanie według identyfikatora zadania
Możesz wyszukać zadanie według identyfikatora zadania w środowisku serwera za pomocą gRPC lub REST. W przykładach poniżej pokazujemy, jak korzystać z biblioteki gRPC Java lub żądanie REST do GetTask.
gRPC
static final String PROJECT_ID = "my-delivery-co-gcp-project";
static final String TASK_ID = "task-8597549";
DeliveryServiceBlockingStub deliveryService =
DeliveryServiceGrpc.newBlockingStub(channel);
// Task request
String taskName = "providers/" + PROJECT_ID + "/tasks/" + TASK_ID;
GetTaskRequest getTaskRequest = GetTaskRequest.newBuilder() // No need for the header
.setName(taskName)
.build();
try {
Task task = deliveryService.getTask(getTaskRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
REST
GET https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<taskId>
- <id> to unikalny identyfikator zadania.
- <taskId> to identyfikator zadania, które chcesz wyszukać.
- Nagłówek żądania musi zawierać pole Authorization z wartością Bearer <token>, gdzie <token> jest wydawany przez serwer zgodnie z wytycznymi opisanymi w artykule Role na koncie usługi oraz Tokeny internetowe JSON.
- Treść żądania musi być pusta.
- Jeśli wyszukiwanie zakończy się powodzeniem, treść odpowiedzi będzie zawierać encję zadania.
Przykładowe polecenie curl
:
# Set JWT, PROJECT_ID, and TASK_ID in the local environment
curl -H "Authorization: Bearer ${JWT}" \
"https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks/${TASK_ID}"
Wyszukaj zadania według identyfikatora śledzenia
Poniższe przykłady pokazują, jak wyszukiwać zadania według identyfikatora śledzenia przesyłki
za pomocą gRPC lub wywołania REST HTTP do GetTaskTrackingInfo
.
gRPC
static final String PROJECT_ID = "my-delivery-co-gcp-project";
static final String TRACKING_ID = "TID-7449w087464x5";
DeliveryServiceBlockingStub deliveryService =
DeliveryServiceGrpc.newBlockingStub(channel);
// Tasks request
String parent = "providers/" + PROJECT_ID;
GetTaskTrackingInfoRequest getTaskTrackingInfoRequest = GetTaskTrackingInfoRequest.newBuilder() // No need for the header
.setParent(parent)
.setTrackingId(TRACKING_ID)
.build();
try {
TaskTrackingInfo taskTrackingInfo = deliveryService.getTaskTrackingInfo(getTaskTrackingInfoRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
REST
GET https://fleetengine.googleapis.com/v1/providers/<project_id>/taskTrackingInfo/<tracking_id>
<tracking_id> to identyfikator śledzenia powiązany z zadaniem.
Nagłówek żądania musi zawierać pole Authorization z wartością Bearer <token>, gdzie <token> odpowiada prawidłowej usłudze rolę konta Google. Zobacz Role konta usługi.
Jeśli wyszukiwanie zakończy się powodzeniem, treść odpowiedzi będzie zawierać taskTrackingInfo.
Przykładowe polecenie curl
:
# Set JWT, PROJECT_ID, and TRACKING_ID in the local environment
curl -H "Authorization: Bearer ${JWT}" \
"https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/taskTrackingInfo/${TRACKING_ID}"
Wyświetlenie listy zadań
Zadania związane z wyświetlaniem listy wymagają szerokiego dostępu do zadań. Zadania związane z wyświetlaniem listy są przeznaczone tylko dla: zaufanych użytkowników. Używaj tokenów uwierzytelniania Delivery Fleet Reader lub Delivery Admin przy wysyłaniu próśb o zadania listy. Więcej informacji znajdziesz w sekcji Role na koncie usługi. i informacjami o nich.
Listy stron
Listy zadań są podzielone na strony. Rozmiar strony można określić w żądaniach wyświetlenia listy zadań. Jeśli podasz rozmiar strony, liczba zwróconych zadań nie będzie większa. niż określono rozmiar strony. Jeśli nie ma rozmiaru strony, odpowiednia domyślna wartość i zgody na określone zastosowania ich danych. Jeśli żądany rozmiar strony przekracza wewnętrzną wartość maksymalną, używana jest wewnętrzna wartość maksymalna.
Lista zadań może zawierać token odczytu następnej strony wyników. Do pobrać kolejną stronę, wysłać to samo żądanie z tokenem strony. Gdy zwrócony token strony jest pusty, nie są dostępne żadne zadania dla pobieranie danych.
Pola podczas wyświetlania listy zadań
Podczas wyświetlania listy zadań Fleet Engine pomija te pola:
VehicleStop.planned_location
VehicleStop.state
VehicleStop.TaskInfo.taskId
Użyj tych formatów pól na podstawie propozycji ulepszeń interfejsu API Google:
Typ pola | Format | Przykład |
---|---|---|
Sygnatura czasowa | RFC-3339 | task_outcome_time = 2022-03-01T11:30:00-08:00 |
Czas trwania | Liczba sekund, po których następuje znak s |
task_duration = 120s |
Typ wyliczeniowy | Ciąg znaków | state = CLOSED AND type = PICKUP |
Lokalizacja | point.latitude i point.longitude |
planned_location.point.latitude > 36.1 AND planned_location.point.longitude < -122.0 |
Filtruj wymienione zadania
Wymienione zadania możesz filtrować według większości właściwości zadań. Jeśli chcesz użyć składni zapytania filtra, patrz AIP-160. Jeśli nie podasz zapytania filtra, zostaną wyświetlone wszystkie zadania.
W tabeli poniżej znajdziesz prawidłowe właściwości zadań, których możesz używać do filtrowania:
Właściwości zadania umożliwiające filtrowanie list | |
---|---|
|
|
Pełną listę operatorów zapytań filtra znajdziesz na stronie AIP-160.
Wyświetlenie listy przykładów zadań
Poniższy przykład pokazuje, jak wyświetlić listę zadań dla elementów deliveryVehicleId
i
z biblioteką Java gRPC oraz z wywołaniem HTTP REST do
ListTasks
Pomyślna odpowiedź może być pusta. Pusta odpowiedź oznacza „nie”
powiązane zadania (deliveryVehicleId
).
gRPC
static final String PROJECT_ID = "my-delivery-co-gcp-project";
static final String TRACKING_ID = "TID-7449w087464x5";
DeliveryServiceBlockingStub deliveryService =
DeliveryServiceGrpc.newBlockingStub(channel);
// Tasks request
String parent = "providers/" + PROJECT_ID;
ListTasksRequest listTasksRequest = ListTasksRequest.newBuilder() // No need for the header
.setParent(parent)
.setFilter("delivery_vehicle_id = 123 AND attributes.foo = true")
.build();
try {
ListTasksResponse listTasksResponse = deliveryService.listTasks(listTasksRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
REST
GET https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks
Aby zastosować filtr do wymienionych zadań, dodaj „filtr” Parametr adresu URL z zapytaniem filtra ze zmianą znaczenia w adresie URL jako jego wartością.
Nagłówek żądania musi zawierać pole Authorization z wartością Bearer <token>, gdzie <token> odpowiada prawidłowej usłudze rolę konta Google. Zobacz Role konta usługi.
Udane wyszukiwanie dostarcza treść odpowiedzi o następującej strukturze:
// JSON representation
{
"tasks": [
{
object (Task)
}
],
"nextPageToken": string,
"totalSize": integer
}
Przykładowe polecenie curl
:
# Set JWT, PROJECT_ID, and VEHICLE_ID in the local environment
curl -H "Authorization: Bearer ${JWT}" \
"https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks?filter=state%20%3D%20OPEN%20AND%20delivery_vehicle_id%20%3D%20${VEHICLE_ID}"