เอกสารนี้จะแสดงวิธีสร้างชุดงานจากสภาพแวดล้อมของเซิร์ฟเวอร์ โดยใช้ gRPC หรือ REST ดูรายละเอียดเพิ่มเติมเกี่ยวกับการสร้างงานได้ที่
ช่องงานสำหรับการสร้างงานเป็นกลุ่ม
เมื่อสร้างงานในกลุ่ม องค์ประกอบ CreateTasksRequest
แต่ละรายการใน requests
ต้องผ่านกฎการตรวจสอบเดียวกันกับคำขอ CreateTask
สำหรับงานเดียว
ยกเว้นช่อง parent
และ header
เป็นช่องที่ไม่บังคับ
หากมีการตั้งค่า ช่องจะต้องเหมือนกับช่องที่เกี่ยวข้องในระดับบนสุด
BatchCreateTasksRequest
สำหรับข้อมูลเพิ่มเติม โปรดดูเอกสารอ้างอิง API สำหรับ BatchCreateTasks
สำหรับ gRPC หรือ REST
ฟิลด์กลุ่มที่จำเป็น
ช่อง | ค่า |
---|---|
คำขอ | Array<CreateTasksRequest> |
ช่องงานแบบเป็นกลุ่มที่ไม่บังคับ
ช่อง | ค่า |
---|---|
ส่วนหัว | DeliveryRequestHeader |
สร้างกลุ่มงาน
ตัวอย่างต่อไปนี้แสดงวิธีสร้างทั้งงานการรับและการนำส่งโดยใช้ไลบรารี gRPC ของ Java หรือวิธีส่งคำขอ HTTP REST ไปยัง BatchCreateTask
โปรดดู
องค์ประกอบ JWT
สำหรับไวยากรณ์ JWT ที่ถูกต้อง
gRPC
static final String PROJECT_ID = "my-delivery-co-gcp-project";
DeliveryServiceBlockingStub deliveryService =
DeliveryServiceGrpc.newBlockingStub(channel);
// Delivery Task settings
Task deliveryTask = Task.newBuilder()
.setType(Task.Type.DELIVERY)
.setState(Task.State.OPEN)
.setTrackingId("delivery-tracking-id")
.setPlannedLocation( // Grand Indonesia East Mall
LocationInfo.newBuilder().setPoint(
LatLng.newBuilder().setLatitude(-6.195139).setLongitude(106.820826)))
.setTaskDuration(
Duration.newBuilder().setSeconds(2 * 60))
.build();
// Delivery Task request
CreateTaskRequest createDeliveryTaskRequest =
CreateTaskRequest.newBuilder() // No need for the header or parent fields
.setTaskId("task-8312508") // Task ID assigned by the Provider
.setTask(deliveryTask) // Initial state
.build();
// Pickup Task settings
Task pickupTask = Task.newBuilder()
.setType(Task.Type.PICKUP)
.setState(Task.State.OPEN)
.setTrackingId("pickup-tracking-id")
.setPlannedLocation( // Grand Indonesia East Mall
LocationInfo.newBuilder().setPoint(
LatLng.newBuilder().setLatitude(-6.195139).setLongitude(106.820826)))
.setTaskDuration(
Duration.newBuilder().setSeconds(2 * 60))
.build();
// Pickup Task request
CreateTaskRequest createPickupTaskRequest =
CreateTaskRequest.newBuilder() // No need for the header or parent fields
.setTaskId("task-8241890") // Task ID assigned by the Provider
.setTask(pickupTask) // Initial state
.build();
// Batch Create Tasks settings
String parent = "providers/" + PROJECT_ID;
// Batch Create Tasks request
BatchCreateTasksRequest batchCreateTasksRequest =
BatchCreateTasksRequest.newBuilder()
.setParent(parent)
.addRequests(createDeliveryTaskRequest)
.addRequests(createPickupTaskRequest)
.build();
// Error handling
// If Fleet Engine does not have any task(s) with these task ID(s) and the
// credentials of the requestor pass, the service creates the task(s)
// successfully.
try {
BatchCreateTasksResponse createdTasks = deliveryService.batchCreateTasks(
batchCreateTasksRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case ALREADY_EXISTS:
break;
case PERMISSION_DENIED:
break;
}
return;
}
REST
หากต้องการสร้างงานการนำส่งและการรับสินค้าจากสภาพแวดล้อมของเซิร์ฟเวอร์ ให้สร้าง
การเรียก HTTP REST ไปยัง BatchCreateTasks
:
POST https://fleetengine.googleapis.com/v1/providers/<project_id>/batchCreate
<id> คือตัวระบุที่ไม่ซ้ำกันสำหรับงาน
ส่วนหัวของคำขอต้องมีช่อง Authorization ที่มีค่า Bearer <token> ซึ่งเซิร์ฟเวอร์ของคุณจะเป็นผู้ออก <token> ตามหลักเกณฑ์ที่อธิบายไว้ในบทบาทของบัญชีบริการ และ โทเค็นเว็บ JSON
เนื้อหาของคำขอต้องมีเอนทิตี BatchCreateTasksRequest
ตัวอย่างคำสั่ง curl
# Set $JWT, $PROJECT_ID, $DELIVERY_TRACKING_ID, $DELIVERY_TASK_ID,
# $PICKUP_TRACKING_ID, and $PICKUP_TASK_ID in the local environment
curl -X POST "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks:batchCreate" \
-H "Content-type: application/json" \
-H "Authorization: Bearer ${JWT}" \
--data-binary @- << EOM
{
"requests" : [
{
"taskId": "${DELIVERY_TASK_ID}",
"task" : {
"type": "DELIVERY",
"state": "OPEN",
"trackingId": "${DELIVERY_TRACKING_ID}",
"plannedLocation": {
"point": {
"latitude": -6.195139,
"longitude": 106.820826
}
},
"taskDuration": "90s"
}
},
{
"taskId": "${PICKUP_TASK_ID}",
"task" : {
"type": "PICKUP",
"state": "OPEN",
"trackingId": "${PICKUP_TRACKING_ID}",
"plannedLocation": {
"point": {
"latitude": -6.195139,
"longitude": 106.820826
}
},
"taskDuration": "90s"
}
}
]
}
EOM