Bu belgede, gRPC veya REST kullanılarak sunucu ortamında bir görev grubu oluşturma işlemi gösterilmektedir. Görev oluşturma hakkında daha fazla bilgi için:
Görevleri toplu olarak oluşturmak için görev alanları
Görevler toplu olarak oluşturulurken requests
içindeki her CreateTasksRequest
öğesi, parent
ve header
alanlarının isteğe bağlı olması dışında tek bir görev için CreateTask
isteğiyle aynı doğrulama kurallarını karşılamalıdır.
Ayarlanmışsa üst düzeydeki ilgili alanlarıyla aynı olmalıdırlarBatchCreateTasksRequest
.
Daha fazla bilgi için gRPC veya REST için BatchCreateTasks
API Referansı dokümanlarına bakın.
Zorunlu grup alanları
Alan | Değer |
---|---|
istek | Array<CreateTasksRequest> |
İsteğe bağlı toplu görev alanları
Alan | Değer |
---|---|
başlık | DeliveryRequestHeader |
Bir görev grubu oluşturma
Aşağıdaki örneklerde, Java gRPC kitaplığı kullanılarak hem teslim alma hem de teslimat görevinin nasıl oluşturulacağı veya BatchCreateTask
adresine HTTP REST isteği nasıl gönderileceği gösterilmektedir. Doğru JWT söz dizimi için JWT öğeleri bölümüne bakın.
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
Sunucu ortamından teslimat ve teslim alma görevi oluşturmak için BatchCreateTasks
adresine HTTP REST çağrısı yapın:
POST https://fleetengine.googleapis.com/v1/providers/<project_id>/batchCreate
<id>, görevin benzersiz tanımlayıcısıdır.
İstek başlığında, Bearer <token> değerine sahip bir Yetkilendirme alanı bulunmalıdır. Burada <token>, sunucunuz tarafından Hizmet hesabı rolleri ve JSON Web jetonları bölümlerinde açıklanan yönergelere göre verilir.
İstek metni bir BatchCreateTasksRequest
öğesi içermelidir.
Örnek curl
komutu:
# 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