สร้างยานพาหนะนำส่งสำหรับงานที่กำหนดเวลาไว้

เอกสารนี้จะอธิบายวิธีสร้างยานพาหนะจากสภาพแวดล้อมเซิร์ฟเวอร์โดยใช้ gRPC หรือ REST คุณสามารถสร้างยานพาหนะจาก Driver SDK ได้ ในกรณีที่ได้จัดสรรแอปเป็นสภาพแวดล้อมที่เชื่อถือได้โดยใช้ข้อมูลเข้าสู่ระบบที่เหมาะสม

หากต้องการทำความเข้าใจวิธีใช้ Driver SDK เพื่อสร้างยานพาหนะ โปรดดูข้อมูลต่อไปนี้

หากต้องการสร้างยานพาหนะใหม่จากสภาพแวดล้อมของเซิร์ฟเวอร์ ให้ส่งคำขอ CreateDeliveryVehicle ไปยัง Fleet Engine ใช้ออบเจ็กต์ CreateDeliveryVehicleRequest เพื่อกำหนดแอตทริบิวต์ของยานพาหนะนำส่งคันใหม่

ฟิลด์สำหรับยานพาหนะสำหรับงานที่กำหนดเวลาไว้

เมื่อสร้าง DeliveryVehicle คุณต้องตั้งค่าช่องที่ไม่บังคับต่อไปนี้

  • attributes
  • last_location
  • type
เท่านั้น

หากต้องการสร้างยานพาหนะโดยไม่ตั้งค่าฟิลด์ที่ไม่บังคับ ให้ปล่อยช่อง DeliveryVehicle ว่างไว้ใน CreateDeliveryVehicleRequest

สร้างตัวอย่างยานพาหนะ

คุณสามารถใช้ไลบรารี Java gRPC เพื่อสร้างยานพาหนะหรือ 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

หากต้องการสร้างยานพาหนะจากสภาพแวดล้อมของเซิร์ฟเวอร์ ให้เรียก HTTP REST ไปยัง CreateDeliveryVehicle

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

เนื้อหา POST แสดงเอนทิตี DeliveryVehicle ที่จะสร้าง คุณสามารถระบุช่องที่ไม่บังคับต่อไปนี้

  • 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

หากต้องการสร้างยานพาหนะโดยไม่ตั้งค่าช่องใดๆ ให้ปล่อยเนื้อหาของคําขอ POST ว่างไว้ จากนั้นยานพาหนะที่สร้างขึ้นใหม่จะดึงรหัสยานพาหนะจากพารามิเตอร์ deliveryVehicleId ใน URL ของ POST

ตัวอย่าง

  # 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}"

ขั้นตอนถัดไป