本文档介绍了如何删除车辆。本文档假定您已设置 Fleet Engine。请参阅设置 Fleet Engine。
车辆删除基础知识
在以下情况下,您的系统可能会使用 Fleet Engine 删除车辆:
- 在测试 Fleet Engine API 时执行清理操作。
- 立即删除不再需要的车辆。
如需删除车辆,请使用 gRPC 或 REST 发送请求。
按照 Fleet Engine:服务账号角色中所述,使用项目服务账号的相应凭据。
示例:删除车辆
Java
以下示例展示了如何使用 Java gRPC 库删除车辆。
  static final String PROJECT_ID = "my-delivery-co-gcp-project";
  static final String VEHICLE_ID = "vehicle-8241890";
  String vehicleName = "providers/" + PROJECT_ID + "/vehicles/" + VEHICLE_ID;
  VehicleServiceBlockingStub vehicleService = VehicleService.newBlockingStub(channel);
  // Delete Vehicle request
  DeleteVehicleRequest deleteVehicleRequest = DeleteVehicleRequest.newBuilder()
      .setName(vehicleName)
      .build();
  try {
    vehicleService.deleteVehicle(deleteVehicleRequest);
  } catch (StatusRuntimeException e) {
    Status s = e.getStatus();
    switch (s.getCode()) {
       case NOT_FOUND:            // The vehicle doesn't exist.
         break;
       case FAILED_PRECONDITION:  // There are trip(s) that reference vehicle.
         break;
       case PERMISSION_DENIED:
         break;
    }
    return;
  }
REST
以下示例展示了如何通过调用 DeleteVehicle 使用 REST 从 Fleet Engine 中删除车辆。
  # DELETE https://fleetengine.googleapis.com/v1/providers/<project_id>/vehicles/<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}/vehicles/${VEHICLE_ID}"
如果删除操作成功,API 会返回一个空响应。
处理错误
删除车辆时,您可能会遇到 FAILED_PRECONDITION 错误,这表示有行程引用了该车辆。如需继续删除,请执行以下操作:
- 调用 SearchTrips可查找引用车辆的行程。
- 调用 DeleteTrip以删除找到的每趟行程。