Usuwanie pojazdu dostawczego

Z tego artykułu dowiesz się, jak usunąć pojazd dostawczy. Zakłada się, że masz skonfigurowany Fleet Engine. Zobacz Konfigurowanie Fleet Engine.

Podstawy usuwania pojazdów dostawczych

System może używać Fleet Engine do usuwania pojazdu dostawczego w tych sytuacjach:

  • Aby podczas testowania interfejsów Fleet Engine API przeprowadzać operacje czyszczenia.
  • Aby natychmiast usunąć pojazd dostawczy, który nie jest już potrzebny.

Aby usunąć pojazd dostawczy, wyślij żądanie za pomocą gRPC lub REST.

  • Metoda DeleteDeliveryVehicle(): gRPC lub REST
  • DeleteDeliveryVehicleRequest komunikat: gRPC

Użyj odpowiednich danych logowania konta usługi w projekcie zgodnie z opisem w artykule Fleet Engine: role konta usługi.

Przykład: usuwanie pojazdu dostawczego

Java

Poniższy przykład pokazuje, jak użyć biblioteki Java gRPC do usunięcia pojazdu dostawczego.

  static final String PROJECT_ID = "my-rideshare-co-gcp-project";
  static final String VEHICLE_ID = "vehicle-8241890";

  String deliveryVehicleName = "providers/" + PROJECT_ID + "/deliveryVehicles/" + VEHICLE_ID;

  DeliveryServiceBlockingStub deliveryService = DeliveryServiceGrpc.newBlockingStub(channel);

  // Delete Vehicle request
  DeleteDeliveryVehicleRequest deleteDeliveryVehicleRequest =
      DeleteDeliveryVehicleRequest.newBuilder().setName(deliveryVehicleName).build();

  try {
    deliveryService.deleteDeliveryVehicle(deleteDeliveryVehicleRequest);
  } catch (StatusRuntimeException e) {
    Status s = e.getStatus();
    switch (s.getCode()) {
       case NOT_FOUND:            // The delivery vehicle doesn't exist.
         break;
       case FAILED_PRECONDITION:  // There are tasks(s) that reference delivery vehicle.
         break;
       case PERMISSION_DENIED:
         break;
    }
    return;
  }

REST

Poniższy przykład pokazuje, jak usunąć pojazd dostawczy z Fleet Engine za pomocą interfejsu REST, wywołując DeleteDeliveryVehicle.

  # DELETE https://fleetengine.googleapis.com/v1/providers/<project_id>/deliveryVehicles/<vehicleId>
  # Set JWT, PROJECT_ID, and VEHICLE_ID in the local environment
  curl -X DELETE -H "Authorization: Bearer ${JWT}" \
    "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/deliveryvehicles/${VEHICLE_ID}"

Jeśli operacja usuwania się powiedzie, interfejs API zwróci pustą odpowiedź.

Obsługuj błędy

Podczas usuwania pojazdu dostawczego może wystąpić błąd FAILED_PRECONDITION, w którym to przypadku istnieją zadania odwołujące się do pojazdu dostawczego. Aby kontynuować usuwanie:

  1. Wywołaj funkcję ListTasks, aby znaleźć zadania, które odwołują się do pojazdu dostawczego.
  2. Wywołaj DeleteTask, aby usunąć każde znalezione zadanie.

Co dalej?