В этом документе описывается, как создать автомобиль из серверной среды с использованием gRPC или REST. Вы можете создать автомобиль из Driver SDK при условии, что вы настроили приложение как доверенную среду, используя соответствующие учетные данные.
Чтобы понять, как использовать Driver SDK для создания транспортных средств, см. следующее:
- Driver SDK для запланированных задач
- Роли сервисных учетных записей в разделе «Основы Fleet Engine» .
Чтобы создать новый автомобиль из серверной среды, отправьте запрос CreateDeliveryVehicle
к Fleet Engine. Используйте объект CreateDeliveryVehicleRequest
, чтобы определить атрибуты нового средства доставки.
Поля для запланированных задач техники
При создании DeliveryVehicle
вы устанавливаете следующие необязательные поля:
-
attributes
-
last_location
-
type
Чтобы создать транспортное средство без установки каких-либо дополнительных полей, вы можете оставить поле DeliveryVehicle
незаданным в CreateDeliveryVehicleRequest
.
Создать пример автомобиля
Для создания автомобиля можно использовать библиотеку Java gRPC или REST.
Ява
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;
}
ОТДЫХ
Чтобы создать транспортное средство из серверной среды, выполните HTTP REST-вызов CreateDeliveryVehicle
:
POST https://fleetengine.googleapis.com/v1/providers/<project_id>/deliveryVehicles?deliveryVehicleId=<id>
Тело POST представляет собой создаваемую сущность DeliveryVehicle
. Вы можете указать следующие необязательные поля:
-
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
Чтобы создать транспортное средство без заполнения каких-либо полей, оставьте тело запроса POST пустым. Затем вновь созданное транспортное средство извлекает идентификатор транспортного средства из параметра deliveryVehicleId
в URL-адресе POST.
Пример:
# 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}"