En este documento, se describe cómo crear un vehículo desde un entorno de servidor con gRPC o REST. Puede crear un vehículo desde el SDK del conductor, siempre que haya aprovisionado la aplicación como un entorno de confianza utilizando las credenciales adecuadas.
Para comprender cómo usar el SDK de Driver para crear vehículos, consulta lo siguiente:
- SDK de Driver para tareas programadas
- Roles de la cuenta de servicio en Aspectos básicos de Fleet Engine
Para crear un nuevo vehículo desde un entorno de servidor, realice una solicitud CreateDeliveryVehicle a Fleet Engine. Utilice el objeto CreateDeliveryVehicleRequest para definir los atributos del nuevo vehículo de reparto.
Campos para vehículos de tareas programadas
Cuando creas un DeliveryVehicle, configuras los siguientes campos opcionales:
attributeslast_locationtype
Para crear un vehículo sin establecer ningún campo opcional, puede dejar el campo DeliveryVehicle sin establecer en el CreateDeliveryVehicleRequest.
Crea un ejemplo de vehículo
Puedes usar la biblioteca de 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 desde un entorno de servidor, realice una llamada HTTP REST a CreateDeliveryVehicle:
POST https://fleetengine.googleapis.com/v1/providers/<project_id>/deliveryVehicles?deliveryVehicleId=<id>
El cuerpo de la solicitud POST representa la entidad DeliveryVehicle que se creará. Puedes especificar los siguientes campos opcionales:
attributeslastLocationtype
# 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, deja vacío el cuerpo de la solicitud POST. El vehículo recién creado extrae entonces un ID de vehículo del parámetro deliveryVehicleId en la URL 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}"