이 문서에서는 설정할 수 있습니다 Fleet Engine은 작업을 찾는 두 가지 방법을 지원합니다.
할 일 조회: 다음 ID로 할 일을 조회할 수 있습니다.
- 작업 ID: 전체 작업에 액세스할 수 있는 차량 운영자와 같은 사용자가 사용합니다. 볼 수 있습니다.
- 추적 ID: 클라이언트 소프트웨어에서 제한된 정보를 제공하기 위해 사용합니다. 최종 사용자에게 배송됩니다.
작업 ID와 작업의 차이점을 이해해야 합니다. 추적 ID가 있는지 확인합니다. 둘은 다릅니다. 예약된 작업 가이드의 기본 작업 필드를 참고하세요.
작업 나열: 신뢰할 수 있는 사용자만 사용할 수 있는 작업에 대한 광범위한 액세스 권한입니다.
할 일 찾기
이 섹션에서는 작업 ID 또는 추적 ID로 작업을 조회하는 방법을 설명합니다. 요구사항은 다음과 같습니다.
추적 ID를 통한 조회는 추적된 객체의 공개 상태 규칙에 명시된 공개 상태 규칙을 준수해야 합니다.
가능한 한 가장 좁은 토큰을 사용하여 보안 위험을 제한합니다. 예를 들어 전달 소비자 토큰을 사용하는 경우 모든 호출은 배송업체나 의미합니다. Fleet Engine에서는 확인할 수 있습니다 토큰에 대한 자세한 내용은 JSON 웹 토큰을 참조하세요.
작업 ID로 작업 조회
gRPC 또는 REST를 사용하여 서버 환경에서 작업 ID로 작업을 조회할 수 있습니다. 다음 예에서는 Java gRPC 라이브러리 또는 GetTask에 대한 REST 요청입니다.
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>는 작업의 고유 식별자입니다.
- <taskId>는 조회할 작업의 ID입니다.
- 요청 헤더에는 값이 Bearer <token>인 Authorization 필드가 포함되어야 합니다. 여기서 <token>은 서비스 계정 역할 및 JSON 웹 토큰에 설명된 가이드라인에 따라 서버에서 발급합니다.
- 요청 본문은 비어 있어야 합니다.
- 조회가 성공하면 응답 본문에 할 일 항목 엔터티가 포함됩니다.
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}"
추적 ID로 할 일 조회
다음 예는 배송 추적 ID로 작업을 조회하는 방법을 보여줍니다.
gRPC 또는 HTTP REST 호출을 사용하여 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>는 작업과 연결된 추적 ID입니다.
요청 헤더에는 값이 있는 Authorization 필드가 포함되어야 합니다. Bearer <token>, 여기서 <token>은 올바른 서비스를 전달합니다. 계정 역할에 따라 다릅니다. 서비스 계정 역할을 참고하세요.
조회가 성공하면 응답 본문에 taskTrackingInfo 항목을 만들 수 있습니다.
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}"
태스크 표시
할 일 목록을 표시하려면 할 일에 대한 광범위한 액세스 권한이 필요합니다. 태스크 나열은 신뢰할 수 있는 사용자 전송 Fleet 리더 또는 전송 관리자 인증 토큰 사용 할 수 있습니다. 자세한 내용은 서비스 계정 역할을 참고하세요.
목록 페이지로 나누기
할 일 목록은 페이지로 나뉩니다. 페이지 크기는 list tasks 요청에서 지정할 수 있습니다. 페이지 크기가 지정된 경우 반환되는 작업의 수는 이보다 크지 않습니다. 더 큰 크기일 수 있습니다. 페이지 크기가 없는 경우 적절한 기본값 사용됩니다. 요청된 페이지 크기가 내부 최댓값을 초과하면 내부 최댓값이 사용됩니다.
작업 목록에는 결과의 다음 페이지를 읽기 위한 토큰이 포함될 수 있습니다. 받는사람 다음 페이지를 가져올 때 페이지 토큰과 함께 동일한 요청을 다시 발행합니다. 반환된 페이지 토큰이 비어 있으면 더 이상 검색할 태스크가 없습니다.
할 일 나열 시 필드
Fleet Engine은 작업을 나열할 때 다음 필드를 수정합니다.
VehicleStop.planned_location
VehicleStop.state
VehicleStop.TaskInfo.taskId
Google API 개선 제안에 따라 다음 필드 형식을 사용하세요.
입력란 유형 | 형식 | 예 |
---|---|---|
타임스탬프 | RFC-3339 | task_outcome_time = 2022-03-01T11:30:00-08:00 |
기간 | 뒤에 s 가 오는 초 수 |
task_duration = 120s |
열거형 | 문자열 | state = CLOSED AND type = PICKUP |
위치 | point.latitude 및 point.longitude |
planned_location.point.latitude > 36.1 AND planned_location.point.longitude < -122.0 |
나열된 작업 필터링
나열된 작업을 대부분의 작업 속성으로 필터링할 수 있습니다. 필터 쿼리 구문의 경우 AIP-160을 참고하세요. 필터 쿼리를 지정하지 않으면 모든 작업이 표시됩니다.
다음 표에는 필터링에 사용할 수 있는 유효한 작업 속성이 나와 있습니다.
목록 필터링을 위한 태스크 속성 | |
---|---|
|
|
필터 쿼리 연산자의 전체 목록은 AIP-160을 참고하세요.
태스크 예시 나열
다음 예는 deliveryVehicleId
및
Java gRPC 라이브러리 및 HTTP REST 호출을 통해
ListTasks
입니다.
성공적인 응답이라도 여전히 비어 있을 수 있습니다. 빈 응답은 아니요를 나타냅니다.
제공된 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
나열된 할 일 목록에 필터를 적용하려면 URL 이스케이프된 필터 쿼리를 값으로 포함하는 'filter' URL 매개변수를 포함합니다.
요청 헤더에는 값이 있는 Authorization 필드가 있어야 합니다. Bearer <token>, 여기서 <token>은 올바른 서비스를 전달합니다. 계정 역할에 따라 다릅니다. 서비스 계정 역할을 참고하세요.
성공적인 조회는 다음과 같은 구조의 응답 본문을 제공합니다.
// JSON representation
{
"tasks": [
{
object (Task)
}
],
"nextPageToken": string,
"totalSize": integer
}
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}"