Utwórz pojazd dostawczy do realizacji zaplanowanych zadań

Z tego dokumentu dowiesz się, jak utworzyć pojazd w środowisku serwera za pomocą gRPC lub REST. Możesz utworzyć pojazd za pomocą pakietu Driver SDK, pod warunkiem że aplikacja została skonfigurowana jako zaufane środowisko przy użyciu odpowiednich danych logowania.

Aby dowiedzieć się, jak używać pakietu Driver SDK do tworzenia pojazdów, zapoznaj się z tymi materiałami:

Aby utworzyć nowy pojazd w środowisku serwera, wyślij CreateDeliveryVehicleżądanie do Fleet Engine. Użyj obiektu CreateDeliveryVehicleRequest, aby zdefiniować atrybuty nowego pojazdu dostawczego.

Pola pojazdów w zaplanowanych zadaniach

Podczas tworzenia DeliveryVehicle możesz ustawić te opcjonalne pola:

  • attributes
  • last_location
  • type

Aby utworzyć pojazd bez ustawiania żadnych pól opcjonalnych, możesz pozostawić pole DeliveryVehicle bez ustawionej wartości w CreateDeliveryVehicleRequest.

Tworzenie przykładowego pojazdu

Do utworzenia pojazdu możesz użyć biblioteki gRPC w języku Java lub interfejsu 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

Aby utworzyć pojazd w środowisku serwera, wywołaj interfejs API REST HTTP CreateDeliveryVehicle:

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

Treść żądania POST reprezentuje encję DeliveryVehicle, która ma zostać utworzona. Możesz określić te pola opcjonalne:

  • 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

Aby utworzyć pojazd bez ustawiania żadnych pól, pozostaw treść żądania POST pustą. Nowo utworzony pojazd wyodrębnia następnie identyfikator pojazdu z parametru deliveryVehicleId w adresie URL żądania POST.

Przykład:

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

Co dalej?