In diesem Dokument wird beschrieben, wie Sie ein Fahrzeug über eine Serverumgebung mit gRPC oder REST erstellen. Sie können ein Fahrzeug über das Driver SDK erstellen, sofern Sie die App mit den entsprechenden Anmeldedaten als vertrauenswürdige Umgebung bereitgestellt haben.
Weitere Informationen zur Verwendung des Driver SDK zum Erstellen von Fahrzeugen:
- Driver SDK für geplante Aufgaben
- Dienstkontorollen unter Grundlagen von Fleet Engine
Wenn Sie ein neues Fahrzeug über eine Serverumgebung erstellen möchten, senden Sie eine CreateDeliveryVehicle-Anfrage an Fleet Engine. Verwenden Sie das Objekt CreateDeliveryVehicleRequest, um die Attribute des neuen Lieferfahrzeugs zu definieren.
Felder für Fahrzeuge für geplante Aufgaben
Beim Erstellen eines DeliveryVehicle legen Sie die folgenden optionalen Felder fest:
attributeslast_locationtype
Wenn Sie ein Fahrzeug erstellen möchten, ohne optionale Felder festzulegen, können Sie das
DeliveryVehicle Feld in der CreateDeliveryVehicleRequest leer lassen.
Beispiel für das Erstellen eines Fahrzeugs
Zum Erstellen eines Fahrzeugs können Sie die Java-gRPC-Bibliothek oder REST verwenden. Eine vollständige Liste der unterstützten Sprachen finden Sie unter Clientbibliotheken für Dienste für geplante Aufgaben.
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
Wenn Sie ein Fahrzeug über eine Serverumgebung erstellen möchten, senden Sie einen HTTP-REST-Aufruf an CreateDeliveryVehicle:
POST https://fleetengine.googleapis.com/v1/providers/<project_id>/deliveryVehicles?deliveryVehicleId=<id>
Der POST-Textkörper stellt die zu erstellende DeliveryVehicle-Entität dar. Sie können die folgenden optionalen Felder angeben:
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
Wenn Sie ein Fahrzeug erstellen möchten, ohne Felder festzulegen, lassen Sie den Textkörper der POST-Anfrage leer. Das neu erstellte Fahrzeug extrahiert dann eine Fahrzeug-ID aus dem Parameter deliveryVehicleId in der POST-URL.
Beispiel:
# 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}"