Создайте средство доставки для запланированных задач

В этом документе описывается, как создать автомобиль из серверной среды с использованием gRPC или REST. Вы можете создать автомобиль из Driver SDK при условии, что вы настроили приложение как доверенную среду, используя соответствующие учетные данные.

Чтобы понять, как использовать Driver SDK для создания транспортных средств, см. следующее:

Чтобы создать новый автомобиль из серверной среды, отправьте запрос 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}"

Что дальше