En este documento, se describe cómo crear un vehículo desde un entorno de servidor con gRPC o REST. Puedes crear un vehículo desde el SDK de Driver, siempre que hayas aprovisionado la app como un entorno de confianza con 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 Nociones básicas de Fleet Engine.
Para crear un vehículo nuevo desde un entorno de servidor, realiza una solicitud CreateDeliveryVehicle
a Fleet Engine. Usa el objeto CreateDeliveryVehicleRequest
para definir los atributos del nuevo vehículo de entrega.
Campos para vehículos de tareas programadas
Cuando creas un DeliveryVehicle
, configuras los siguientes campos opcionales:
attributes
last_location
type
Para crear un vehículo sin configurar ningún campo opcional, puedes dejar el campo DeliveryVehicle
sin definir en CreateDeliveryVehicleRequest
.
Ejemplo de creación de vehículos
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 desde un entorno de servidor, realiza una llamada HTTP REST a CreateDeliveryVehicle
:
POST https://fleetengine.googleapis.com/v1/providers/<project_id>/deliveryVehicles?deliveryVehicleId=<id>
El cuerpo del POST representa la entidad DeliveryVehicle
que se creará. Puedes especificar 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, deja el cuerpo de la solicitud POST vacío. 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}"