Membuat kendaraan pengiriman untuk tugas terjadwal

Dokumen ini menjelaskan cara membuat kendaraan dari lingkungan server menggunakan gRPC atau REST. Anda dapat membuat kendaraan dari Driver SDK asalkan Anda telah menyediakan aplikasi sebagai lingkungan tepercaya menggunakan kredensial yang sesuai.

Untuk memahami cara menggunakan Driver SDK guna membuat kendaraan, lihat hal berikut:

Untuk membuat kendaraan baru dari lingkungan server, buat permintaan CreateDeliveryVehicle ke Fleet Engine. Gunakan objek CreateDeliveryVehicleRequest untuk menentukan atribut kendaraan pengiriman baru.

Kolom untuk kendaraan tugas terjadwal

Saat membuat DeliveryVehicle, Anda menetapkan kolom opsional berikut:

  • attributes
  • last_location
  • type

Untuk membuat kendaraan tanpa menetapkan kolom opsional, Anda dapat membiarkan kolom DeliveryVehicle tidak ditetapkan di CreateDeliveryVehicleRequest.

Membuat contoh kendaraan

Anda dapat menggunakan library gRPC Java untuk membuat kendaraan, atau REST.

Java

  static final String PROJECT_ID = "my-delivery-co-gcp-project";
  static final String VEHICLE_ID = "vehicle-8241890"; // Avoid auto-incrementing IDs.

  DeliveryServiceBlockingStub deliveryService =
    DeliveryServiceGrpc.newBlockingStub(channel);

  // Vehicle settings
  String parent = "providers/" + PROJECT_ID;
  DeliveryVehicle vehicle = DeliveryVehicle.newBuilder()
    .addAttributes(DeliveryVehicleAttribute.newBuilder()
      .setKey("route_number").setValue("1"))  // Opaque to the Fleet Engine
    .build();

  // Vehicle request
  CreateDeliveryVehicleRequest createVehicleRequest =
    CreateDeliveryVehicleRequest.newBuilder()  // No need for the header
        .setParent(parent)
        .setDeliveryVehicleId(VEHICLE_ID)     // Vehicle ID assigned by the Provider
        .setDeliveryVehicle(vehicle)
        .build();

  // Error handling
  // If Fleet Engine does not have vehicle with that ID and the credentials of the
  // requestor pass, the service creates the vehicle successfully.

  try {
    DeliveryVehicle createdVehicle =
      deliveryService.createDeliveryVehicle(createVehicleRequest);
  } catch (StatusRuntimeException e) {
    Status s = e.getStatus();
    switch (s.getCode()) {
       case ALREADY_EXISTS:
         break;
       case PERMISSION_DENIED:
         break;
    }
    return;
  }

REST

Untuk membuat kendaraan dari lingkungan server, buat panggilan REST HTTP ke CreateDeliveryVehicle:

POST https://fleetengine.googleapis.com/v1/providers/<project_id>/deliveryVehicles?deliveryVehicleId=<id>

Isi POST mewakili entity DeliveryVehicle yang akan dibuat. Anda dapat menentukan kolom opsional berikut:

  • attributes
  • lastLocation
  • type
  # Set $JWT, $PROJECT_ID, and $VEHICLE_ID in the local
  # environment
  curl -X POST "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/deliveryVehicles?deliveryVehicleId=${VEHICLE_ID}" \
    -H "Content-type: application/json" \
    -H "Authorization: Bearer ${JWT}" \
  --data-binary @- << EOM
  {
    "attributes": [{"key": "model", "value": "sedan"}],
    "lastLocation": {"location": {"latitude": 12.1, "longitude": 14.5}}
  }
  EOM

Untuk membuat kendaraan tanpa menetapkan kolom apa pun, biarkan isi permintaan POST kosong. Kendaraan yang baru dibuat kemudian mengekstrak ID kendaraan dari parameter deliveryVehicleId di URL POST.

Contoh:

  # Set $JWT, $PROJECT_ID, and $VEHICLE_ID in the local
  # environment
  curl -X POST "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/deliveryVehicles?deliveryVehicleId=${VEHICLE_ID}" \
    -H "Content-type: application/json" \
    -H "Authorization: Bearer ${JWT}"

Langkah berikutnya