이 문서에서는 gRPC 또는 REST를 사용하여 서버 환경에서 차량을 만드는 방법을 설명합니다. 적절한 사용자 인증 정보를 사용하여 앱을 신뢰할 수 있는 환경으로 프로비저닝한 경우 Driver SDK에서 차량을 만들 수 있습니다.
Driver SDK를 사용하여 차량을 만드는 방법을 알아보려면 다음을 참고하세요.
- 예약된 작업용 Driver SDK
- Fleet Engine 필수사항의 서비스 계정 역할
서버 환경에서 새 차량을 만들려면 Fleet Engine에 CreateDeliveryVehicle 요청을 합니다. CreateDeliveryVehicleRequest 객체를 사용하여 새 배송 차량의 속성을 정의합니다.
예약된 작업 차량의 필드
DeliveryVehicle을 만들 때 다음 선택적 필드를 설정합니다.
attributeslast_locationtype
선택적 필드를 설정하지 않고 차량을 만들려면 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 항목을 나타냅니다. 다음 선택적 필드를 지정할 수 있습니다.
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
필드를 설정하지 않고 차량을 만들려면 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}"