В этом документе описывается, как создать транспортное средство из серверной среды, используя gRPC или REST. Вы можете создать транспортное средство из Driver SDK при условии, что вы предварительно настроили приложение как доверенную среду, используя соответствующие учетные данные.
Чтобы понять, как использовать Driver SDK для создания транспортных средств, см. следующие материалы:
- SDK драйвера для запланированных задач
- Роли учетных записей сервиса в разделе «Основные параметры Fleet Engine» .
Для создания нового транспортного средства в серверной среде отправьте запрос CreateDeliveryVehicle в Fleet Engine. Используйте объект CreateDeliveryVehicleRequest для определения атрибутов нового транспортного средства для доставки.
Поля для транспортных средств, предназначенных для выполнения плановых задач
При создании DeliveryVehicle необходимо задать следующие необязательные поля:
-
attributes -
last_location -
type
Чтобы создать транспортное средство, не задавая никаких необязательных полей, вы можете оставить поле DeliveryVehicle незаполненным в запросе CreateDeliveryVehicleRequest .
Создать пример транспортного средства
Для создания транспортного средства можно использовать библиотеку Java gRPC или 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;
}
ОТДЫХ
Для создания транспортного средства в серверной среде выполните 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}"