Z tego dokumentu dowiesz się, jak znaleźć informacje o zadaniu na serwerze lub w przeglądarce. Fleet Engine obsługuje 2 metody znajdowania zadań:
Wyszukiwanie zadań: możesz wyszukać zadania według tych identyfikatorów:
- Identyfikator zadania: służy użytkownikom, takim jak operatorzy floty, którzy mają dostęp do pełnych danych o zadaniu.
- Identyfikator śledzenia: używany przez oprogramowanie klienta, aby udostępniać użytkownikowi ograniczone informacje, np. o tym, kiedy przyjdzie przesyłka do domu.
Pamiętaj, aby znać różnicę między identyfikatorem zadania a identyfikatorem śledzenia zadania. Są to jednak różne rzeczy. Więcej informacji znajdziesz w sekcji Podstawowe pola zadania w przewodniku dotyczącym zaplanowanych zadań.
Wyświetlanie listy zadań: szeroki dostęp do zadań przeznaczony tylko dla zaufanych użytkowników.
wyszukiwać zadania,
Z tej sekcji dowiesz się, jak wyszukiwać zadania według identyfikatora zadania lub identyfikatora śledzenia. Na jego podstawie obowiązują te wymagania:
Wyszukiwania według identyfikatora śledzenia muszą być zgodne z regułami widoczności określonymi w regułach widoczności śledzonych obiektów.
Aby ograniczyć zagrożenia dla bezpieczeństwa, używaj jak najbardziej wąskiego tokena. Jeśli na przykład korzystasz z tokena klienta dostawy, wszelkie połączenia zwracają tylko informacje istotne dla tego użytkownika, takie jak nadawca lub odbiorca przesyłki. Fleet Engine usuwa wszystkie inne informacje w odpowiedziach. Więcej informacji o tokenach znajdziesz w artykule Tokeny internetowe JSON.
Wyszukaj zadanie według identyfikatora zadania
Za pomocą gRPC lub REST możesz wyszukać zadanie po jego identyfikatorze w środowisku serwera. Poniższe przykłady pokazują, jak użyć biblioteki Java gRPC lub żądania 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 o wartości Bearer <token>, gdzie <token> jest wydawany przez serwer zgodnie z wytycznymi opisanymi w artykule Role na kontach usługi i tokeny sieciowe JSON.
- Treść żądania musi być pusta.
- Jeśli wyszukiwanie się powiedzie, treść odpowiedzi będzie zawierać element zadania.
Przykład polecenia 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 za pomocą identyfikatora śledzenia przesyłki, używając interfejsu gRPC lub wywołania HTTP REST 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 o wartości Bearer <token>, gdzie <token> ma prawidłową rolę konta usługi. Zobacz Role konta usługi.
Jeśli wyszukiwanie się powiedzie, treść odpowiedzi będzie zawierać element 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ń
Wyświetlanie listy zadań wymaga szerokiego dostępu do zadań. Wykazywanie zadań jest przeznaczone tylko dla zaufanych użytkowników. Używaj tokenów uwierzytelniania Czytelnika informacji o flocie w usłudze Delivery lub Administratora w usłudze Delivery, gdy wysyłasz żądania dotyczące list zadań. Więcej informacji znajdziesz w artykule Role na kontach usługi.
podziałem na strony,
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 od tego rozmiaru strony. W przypadku braku rozmiaru strony zostanie użyta rozsądna wartość domyślna. Jeśli żądany rozmiar strony przekracza wewnętrzną wartość maksymalną, używana jest ta ostatnia.
Lista zadań może zawierać token odczytu następnej strony wyników. Aby pobrać następną stronę, wyślij to samo żądanie ponownie razem z tokenem strony. Gdy zwrócony token strony jest pusty, nie można pobrać więcej zadań.
Pola podczas wyświetlania listy zadań
Fleet Engine zaciemnia te pola podczas wyświetlania zadań:
VehicleStop.planned_location
VehicleStop.state
VehicleStop.TaskInfo.taskId
Użyj tych formatów pól na podstawie propozycji ulepszeń interfejsu Google API:
Typ pola | Format | Przykład |
---|---|---|
Sygnatura czasowa | RFC-3339 | task_outcome_time = 2022-03-01T11:30:00-08:00 |
Czas trwania | Liczba sekund, a następnie 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ń. Informacje o składni zapytań filtra znajdziesz w artykule AIP-160. Jeśli nie podasz zapytania filtra, wyświetlą się 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.
Przykłady list zadań
Ten przykład pokazuje, jak wyświetlić listę zadań dla deliveryVehicleId
i atrybutu zadania, zarówno za pomocą biblioteki Java gRPC, jak i za pomocą wywołania HTTP REST do ListTasks
.
Odpowiedź o powodzeniu może być pusta. Pusta odpowiedź oznacza brak zadań powiązanych z podanym identyfikatorem 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 parametr adresu URL „filter” z wartością w postaci zaszyfrowanego zapytania filtra.
Nagłówek żądania musi zawierać pole Authorization o wartości Bearer <token>, gdzie <token> ma prawidłową rolę konta usługi. Zobacz Role konta usługi.
W przypadku powodzenia wyszukiwania treść odpowiedzi ma następującą strukturę:
// 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}"