이 문서에서는 gRPC 또는 REST를 사용하여 서버 환경에서 차량을 만드는 방법을 설명합니다. 적절한 사용자 인증 정보를 사용하여 앱을 신뢰할 수 있는 환경으로 프로비저닝한 경우 Driver SDK에서 차량을 만들 수 있습니다.
Driver SDK를 사용하여 차량을 만드는 방법을 알아보려면 다음을 참고하세요.
- 예약된 작업을 위한 Driver SDK
- Fleet Engine 기본사항의 서비스 계정 역할
서버 환경에서 새 차량을 만들려면 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}"