GAPI 클라이언트 라이브러리

서버 간 (신뢰할 수 있는) 통신의 경우 원시 REST 또는 gRPC를 사용해 개발하는 것보다 더 나은 환경을 위해 언어별 GAPI 클라이언트 라이브러리를 사용하는 것이 좋습니다. 이러한 클라이언트의 기반이 되는 protobuf 파일은 https://github.com/googleapis/googleapis/tree/master/google/maps/fleetengine/v1에서 공개적으로 확인할 수 있습니다.

라이브러리가 애플리케이션의 언어로 존재하지 않는 경우 gRPC 또는 Fleet Engine REST 엔드포인트를 사용하는 것이 좋습니다.

참고: GAPIC 라이브러리는 신뢰할 수 있는 (서버) 환경에서 실행되도록 설계되었습니다. JWT는 필요하지 않습니다. 적절한 ondemandAdmin 역할과 함께 애플리케이션 기본 사용자 인증 정보를 사용합니다.

Java

Java 라이브러리는 google.maps.fleetengine.v1에 게시됩니다.

Gradle

plugins {
  id "maven-publish"
  id "com.google.cloud.artifactregistry.gradle-plugin" version "2.1.4"
}

publishing {
  repositories {
    maven {
      url "artifactregistry://us-maven.pkg.dev/fleetengine-gapic/maven"
    }
  }
}

repositories {
  maven {
    url "artifactregistry://us-maven.pkg.dev/fleetengine-gapic/maven"
  }
}

dependencies {
  implementation 'com.google.maps:gapic-google-maps-fleetengine-v1-java:latest.release'
}

Maven

<project>
  <distributionManagement>
    <snapshotRepository>
      <id>artifact-registry</id>
      <url>artifactregistry://us-maven.pkg.dev/fleetengine-gapic/maven</url>
    </snapshotRepository>
    <repository>
      <id>artifact-registry</id>
      <url>artifactregistry://us-maven.pkg.dev/fleetengine-gapic/maven</url>
    </repository>
  </distributionManagement>

  <repositories>
    <repository>
      <id>artifact-registry</id>
      <url>artifactregistry://us-maven.pkg.dev/fleetengine-gapic/maven</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
  </repositories>

  <build>
    <extensions>
      <extension>
        <groupId>com.google.cloud.artifactregistry</groupId>
        <artifactId>artifactregistry-maven-wagon</artifactId>
        <version>2.1.4</version>
      </extension>
    </extensions>
  </build>

  <dependency>
    <groupId>com.google.maps</groupId>
    <artifactId>gapic-google-maps-fleetengine-v1-java</artifactId>
    <version>LATEST</version>
  </dependency>
</project>

Java용 Fleet Engine 인증 라이브러리를 사용하여 자바 환경 내에서 서명된 JSON 웹 토큰을 만들 수 있습니다.

Fleet Engine 시작하기 페이지에서 Fleet Engine API와 상호작용하는 자바 예시를 볼 수 있습니다.

Node.js / TypeScript

https://www.npmjs.com/package/@googlemaps/fleetengine을 참고하세요.

npm

npm install @googlemaps/fleetengine

Go

Go 라이브러리는 https://pkg.go.dev/maps/fleetengine/v1에서 모듈로 패키징되어 있습니다.

package main

import (
    "context"
    "fmt"
    "log"

    "google.golang.org/api/iterator"
    "google.golang.org/api/option"
    fleetengine "google.golang.org/maps/fleetengine/v1"

    pb "google.golang.org/genproto/googleapis/maps/fleetengine/v1"
)

func main() {
    // Set the GOOGLE_APPLICATION_CREDENTIALS environment variable to point to a credential configuration file.
    // https://cloud.google.com/docs/authentication/application-default-credentials#GAC
    provider := "cabrio-1501793433270"

    ctx := context.Background()
    vc, err := fleetengine.NewVehicleClient(ctx,
        option.WithQuotaProject(provider),
        option.WithScopes("https://www.googleapis.com/auth/cloud-platform"),
    )
    if err != nil {
        log.Fatalf("Couldn't connect: %v", err)
    }

    i := vc.ListVehicles(ctx, &pb.ListVehiclesRequest{
        // NB: PageSize determines how many resources each call to the underlying
        // List method returns, not how many values the Iterator will go through.
        // The Iterator will continue making List calls until it exhausts
        // `nextPageToken`.
        PageSize: 10,
        Parent:   "providers/" + provider,
    })
    for {
        v, err := i.Next()
        if err == iterator.Done {
            break
        }
        if err != nil {
            log.Fatalf("Couldn't connect: %v", err)
        }
        fmt.Println(v)
    }
}

Python

https://pypi.org/project/google-maps-fleetengine/0.1.0/을 참조하세요.

pip

pip install google-auth
pip install google-maps-fleetengine

샘플 코드

from google.maps import fleetengine_v1
import google.auth
from google.auth import jwt, iam
from google.auth.transport import requests

# CONSTANTS
PROJECT_ID = 'YOUR_GCP_PROJECT_NAME'
VEHICLE_ID = 'YOUR_VEHICLE_ID'
SERVICE_ACCOUNT = f'YOUR_SERVICE_ACCOUNT@{PROJECT_ID}.iam.gserviceaccount.com'

# CREATE A JWT FOR AUTHENTICATION
credentials, _ = google.auth.default(scopes=['https://www.googleapis.com/auth/iam'])
signer = iam.Signer(requests.Request(), credentials, SERVICE_ACCOUNT)
jwt_credentials = jwt.Credentials(
  signer,
  issuer=SERVICE_ACCOUNT,
  subject=SERVICE_ACCOUNT,
  audience='https://fleetengine.googleapis.com/',
  additional_claims={
    "authorization": {
      "vehicleid" : VEHICLE_ID
    }
  }
)

# MAKE A REQUEST
maps_fleetengine_client = fleetengine_v1.VehicleServiceClient(credentials=jwt_credentials)
request = fleetengine_v1.GetVehicleRequest(name=f'providers/{PROJECT_ID}/vehicles/{VEHICLE_ID}')
response = maps_fleetengine_client.get_vehicle(request=request)

C#

C# 라이브러리 설치 안내는 https://www.nuget.org/packages/Google.Maps.FleetEngine.V1에서 확인할 수 있습니다.

2,399필리핀

https://packagist.org/packages/google/maps-fleetengine을 참고하세요.

루비

https://rubygems.org/gems/google-maps-fleet_engine을 참고하세요.