Bu belgede, gRPC veya REST kullanarak bir sunucu ortamından nasıl görev grubu oluşturulacağı açıklanmaktadır. Görev oluşturma hakkında daha fazla bilgi için aşağıdaki makalelere bakın:
Toplu görev oluşturma için görev alanları
Toplu görev oluştururken, requests içindeki her CreateTasksRequest öğesinin tek bir görev için bir CreateTask isteğiyle aynı doğrulama kurallarını geçmesi gerekir; tek fark, parent ve header alanlarının isteğe bağlı olmasıdır.
Ayarlanırsa, en üst düzeydeki BatchCreateTasksRequest ilgili alanlarıyla aynı olmalıdırlar.
Daha fazla bilgi için BatchCreateTasks
gRPC veya REST için API Referansı belgelerine bakın.
Zorunlu toplu işlem alanları
| Alan | Değer |
|---|---|
| istek | Array<CreateTasksRequest> |
İsteğe bağlı toplu görev alanları
| Alan | Değer |
|---|---|
| başlık | DeliveryRequestHeader |
Bir grup görev oluşturun
Aşağıdaki örneklerde, Java gRPC kitaplığı kullanılarak hem teslim alma hem de teslimat görevinin nasıl oluşturulacağı veya BatchCreateTask adresine nasıl HTTP REST isteği 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
Bir sunucu ortamından teslimat ve alma görevi oluşturmak için BatchCreateTasks adresine bir 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, Authorization alanı ve Bearer <token> değeri bulunmalıdır. Burada <token>, Hizmet hesabı rolleri ve JSON Web jetonları'nda açıklanan yönergelere göre sunucunuz tarafından verilir.
İstek gövdesi bir BatchCreateTasksRequest varlığı 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