Créez un véhicule de livraison pour des tâches planifiées

Ce document explique comment créer un véhicule à partir d'un environnement serveur à l'aide de gRPC ou de REST. Vous pouvez créer un véhicule à partir du SDK Driver, à condition vous avez provisionné l'application en tant qu'environnement approuvé à l'aide de la identifiants de connexion.

Pour savoir comment utiliser le SDK Driver pour créer des véhicules, consultez les ressources suivantes :

Pour créer un véhicule à partir d'un environnement serveur, envoyez une requête CreateDeliveryVehicle à Fleet Engine. Utilisez l'objet CreateDeliveryVehicleRequest pour définir les attributs du nouveau véhicule de livraison.

Champs pour les véhicules des tâches planifiées

Lorsque vous créez un DeliveryVehicle, vous définissez les champs facultatifs suivants:

  • attributes
  • last_location
  • type

Pour créer un véhicule sans définir de champs facultatifs, vous pouvez laisser le champ DeliveryVehicle non défini dans CreateDeliveryVehicleRequest.

Exemple de création d'un véhicule

Vous pouvez utiliser la bibliothèque Java gRPC pour créer un véhicule ou 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

Pour créer un véhicule à partir d'un environnement de serveur, effectuez un appel HTTP REST vers CreateDeliveryVehicle:

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

Le corps POST représente l'entité DeliveryVehicle à créer. Vous pouvez spécifiez les champs facultatifs suivants:

  • 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

Pour créer un véhicule sans définir de champ, laissez le corps de la requête POST. requête vide. Le véhicule nouvellement créé extrait ensuite un ID de véhicule à partir du paramètre deliveryVehicleId 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}"

Étape suivante