Ce document explique comment créer un véhicule à partir d'un environnement de serveur à l'aide de gRPC ou de REST. Vous pouvez créer un véhicule à partir du Driver SDK, à condition d'avoir provisionné l'application en tant qu'environnement de confiance à l'aide des identifiants appropriés.
Pour savoir comment utiliser le Driver SDK afin de créer des véhicules, consultez les ressources suivantes :
- Driver SDK pour les tâches planifiées
- Rôles de compte de service sous Principes de base de Fleet Engine.
Pour créer un véhicule à partir d'un environnement de serveur, envoyez une
CreateDeliveryVehicle requête à Fleet Engine. Utilisez l'objet
CreateDeliveryVehicleRequest pour définir les attributs du nouveau
véhicule de livraison.
Champs pour les véhicules de tâches planifiées
Lorsque vous créez un DeliveryVehicle, vous définissez les champs facultatifs suivants :
attributeslast_locationtype
Pour créer un véhicule sans définir de champs facultatifs, vous pouvez laisser le
DeliveryVehicle champ non défini dans le CreateDeliveryVehicleRequest.
Exemple de création de véhicule
Pour créer un véhicule, vous pouvez utiliser la bibliothèque Java gRPC ou REST. Pour obtenir la liste complète des langues disponibles, consultez la page Bibliothèques clientes pour les services de tâches planifiées.
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
Pour créer un véhicule à partir d'un environnement de serveur, effectuez un appel HTTP REST
à CreateDeliveryVehicle :
POST https://fleetengine.googleapis.com/v1/providers/<project_id>/deliveryVehicles?deliveryVehicleId=<id>
Le corps de la requête POST représente l'entité DeliveryVehicle à créer. Vous pouvez
spécifier les champs facultatifs suivants :
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
Pour créer un véhicule sans définir de champs, laissez le corps de la requête POST
vide. Le véhicule nouvellement créé extrait ensuite un ID de véhicule à partir du
deliveryVehicleId paramètre dans l'URL POST.
Exemple :
# 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}"