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 controlador para crear vehículos, consulta los siguientes vínculos:
- SDK de Driver para tareas programadas
- Roles de cuenta de servicio en Conceptos básicos de Flet Engine
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 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}"