Crea un vehículo de entrega para las tareas programadas

En este documento, se describe cómo crear un vehículo a partir de un entorno de servidor usando gRPC o REST. Puedes crear un vehículo desde el SDK del controlador, siempre que aprovisionaste la app como un entorno de confianza con la configuración credenciales.

Si deseas comprender cómo usar el SDK del conductor para crear vehículos, consulta los siguientes vínculos:

Para crear un vehículo nuevo a partir de un entorno de servidor, crea un Solicitud CreateDeliveryVehicle a Fleet Engine. Usa el CreateDeliveryVehicleRequest para definir los atributos del nuevo objeto vehículo de reparto.

Campos para vehículos con tareas programadas

Cuando creas un DeliveryVehicle, debes establecer los siguientes campos opcionales:

  • attributes
  • last_location
  • type

Para crear un vehículo sin configurar ningún campo opcional, puedes salir de la No se configuró el campo DeliveryVehicle en CreateDeliveryVehicleRequest.

Crear ejemplo de vehículo

Puedes usar la biblioteca gRPC de Java para crear un vehículo o 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

Para crear un vehículo a partir de un entorno de servidor, realiza una llamada REST HTTP a CreateDeliveryVehicle:

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

El cuerpo de POST representa la entidad DeliveryVehicle que se creará. Puedes especifica los siguientes campos opcionales:

  • 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

Para crear un vehículo sin configurar ningún campo, abandona el cuerpo de la solicitud POST. la solicitud está vacía. Luego, el vehículo recién creado extrae un ID de vehículo del deliveryVehicleId en la URL de POST.

Ejemplo:

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

¿Qué sigue?