예약된 작업을 위한 배송 수단 만들기

이 문서에서는 gRPC 또는 REST를 사용하여 서버 환경에서 차량을 만드는 방법을 설명합니다. 적절한 사용자 인증 정보를 사용하여 앱을 신뢰할 수 있는 환경으로 프로비저닝한 경우 Driver SDK에서 차량을 만들 수 있습니다.

Driver SDK를 사용하여 차량을 만드는 방법을 알아보려면 다음을 참고하세요.

서버 환경에서 새 차량을 만들려면 Fleet Engine에 CreateDeliveryVehicle 요청을 보냅니다. CreateDeliveryVehicleRequest 객체를 사용하여 새 배송 차량의 속성을 정의합니다.

예약된 작업 차량의 필드

DeliveryVehicle을 만들 때 다음과 같은 선택사항 필드를 설정합니다.

  • attributes
  • last_location
  • type

선택적 필드를 설정하지 않고 차량을 만들려면 CreateDeliveryVehicleRequest에서 DeliveryVehicle 필드를 설정하지 않은 상태로 둡니다.

차량 예시 만들기

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;
  }

REST

서버 환경에서 차량을 만들려면 CreateDeliveryVehicle에 HTTP REST를 호출합니다.

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 요청 본문을 비워 둡니다. 그러면 새로 생성된 차량이 POST URL의 deliveryVehicleId 매개변수에서 차량 ID를 추출합니다.

예:

  # 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}"

다음 단계